Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何对两个表使用max_Mysql - Fatal编程技术网

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很高兴听到!如果这确实解决了你的问题,请考虑标记接受的答案(在上/下投票箭头下的复选标记)。看见