Mysql 如何对两个表使用max
我想在时间字段上使用Mysql 如何对两个表使用max,mysql,Mysql,我想在时间字段上使用MAX,它可以工作,但值为“0” 此查询在我使用MAX之前: SELECT a.`JAM`, AVG(a.PacketLoss) AVG FROM ( SELECT `JAM`,`RNC`,`IPPATH_PM` AS PHB,`VS_IPPM_FORWORD_DROPMEANS` AS PacketLoss, `VSIPPMRttMeans` AS Latency, 'IPPM' FROM `rnc_ippm_meas` WHERE `JAM`>= CURDATE()
MAX
,它可以工作,但值为“0”
此查询在我使用MAX
之前:
SELECT a.`JAM`, AVG(a.PacketLoss) AVG
FROM (
SELECT `JAM`,`RNC`,`IPPATH_PM` AS PHB,`VS_IPPM_FORWORD_DROPMEANS` AS PacketLoss, `VSIPPMRttMeans` AS Latency, 'IPPM'
FROM `rnc_ippm_meas`
WHERE `JAM`>= CURDATE() AND `IPPATH_PM` LIKE '%AF31%'
UNION
SELECT `JAM`,`RNC`,`IPPOOL_PM`,`VSIPPOOLIPPMForwardDrop-Means`,`VSIPPOOLIPPMRttMeans`, 'IPPOOLPM'
FROM `rnc_ippool_ippm_meas`
WHERE `JAM`>= CURDATE() AND `IPPOOL_PM` LIKE '%AF31%') a
GROUP BY a.`JAM`
LIMIT 10000
此处输出
然后我在这里使用MAX
SELECT a.`JAM`, AVG(a.PacketLoss) AVG
FROM (
SELECT MAX(JAM) AS JAM,`RNC`,`IPPATH_PM` AS PHB,`VS_IPPM_FORWORD_DROPMEANS` AS PacketLoss, `VSIPPMRttMeans` AS Latency, 'IPPM'
FROM `rnc_ippm_meas`
WHERE `JAM`>= CURDATE() AND `IPPATH_PM` LIKE '%AF31%'
UNION
SELECT MAX(JAM) AS JAM,`RNC`,`IPPOOL_PM`,`VSIPPOOLIPPMForwardDrop-Means`,`VSIPPOOLIPPMRttMeans`, 'IPPOOLPM'
FROM `rnc_ippool_ippm_meas`
WHERE `JAM`>= CURDATE() AND `IPPOOL_PM` LIKE '%AF31%') a
GROUP BY a.`JAM`
LIMIT 10000
我希望输出的是上次的值,有人能帮我吗?谢谢您需要在外部查询中使用
MAX
,而不是内部查询。在进行内部查询时,MySQL会为非聚合列提供一个不确定的值,例如,VS_IPPM\u FORWORD\u DROPMEANS
,对于示例数据,该值似乎为0。将查询更改为:
SELECT MAX(a.`JAM`), AVG(a.PacketLoss) AVG
FROM (
SELECT `JAM`,`RNC`,`IPPATH_PM` AS PHB,`VS_IPPM_FORWORD_DROPMEANS` AS PacketLoss, `VSIPPMRttMeans` AS Latency, 'IPPM'
FROM `rnc_ippm_meas`
WHERE `JAM`>= CURDATE() AND `IPPATH_PM` LIKE '%AF31%'
UNION
SELECT `JAM`,`RNC`,`IPPOOL_PM`,`VSIPPOOLIPPMForwardDrop-Means`,`VSIPPOOLIPPMRttMeans`, 'IPPOOLPM'
FROM `rnc_ippool_ippm_meas`
WHERE `JAM`>= CURDATE() AND `IPPOOL_PM` LIKE '%AF31%') a
请注意,不再需要“分组依据”,因为您在整个数据集上使用了
MAX
和AVG
,并且不需要限制,因为此查询将只生成一行。您需要在外部查询中使用MAX
,而不是内部查询。在进行内部查询时,MySQL会为非聚合列提供一个不确定的值,例如,VS_IPPM\u FORWORD\u DROPMEANS
,对于示例数据,该值似乎为0。将查询更改为:
SELECT MAX(a.`JAM`), AVG(a.PacketLoss) AVG
FROM (
SELECT `JAM`,`RNC`,`IPPATH_PM` AS PHB,`VS_IPPM_FORWORD_DROPMEANS` AS PacketLoss, `VSIPPMRttMeans` AS Latency, 'IPPM'
FROM `rnc_ippm_meas`
WHERE `JAM`>= CURDATE() AND `IPPATH_PM` LIKE '%AF31%'
UNION
SELECT `JAM`,`RNC`,`IPPOOL_PM`,`VSIPPOOLIPPMForwardDrop-Means`,`VSIPPOOLIPPMRttMeans`, 'IPPOOLPM'
FROM `rnc_ippool_ippm_meas`
WHERE `JAM`>= CURDATE() AND `IPPOOL_PM` LIKE '%AF31%') a
请注意,不再需要“分组依据”
,因为您在整个数据集上使用了MAX
和AVG
,并且不需要限制,因为此查询只生成一行。@lutfimetahudin好听!如果这确实解决了你的问题,请考虑标记接受的答案(在上/下投票箭头下的复选标记)。看到@lutfimethaudin很高兴听到!如果这确实解决了你的问题,请考虑标记接受的答案(在上/下投票箭头下的复选标记)。看见