Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.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
Html SQL语句提供了意外的结果_Html_Mysql_Distinct - Fatal编程技术网

Html SQL语句提供了意外的结果

Html SQL语句提供了意外的结果,html,mysql,distinct,Html,Mysql,Distinct,我有下表(mTable) SQL语句: SELECT DISTINCT `id`, number as mynum, MAX(`sent`) AS sentOn FROM `mTable` GROUP BY `id` 结果是: id | mynum | sentOn ------------------------------------ 23 | 0 | 2017-03-04 00:00:00 45 | 1.8 | 2017-03-17 00:00:00 预期

我有下表(mTable)

SQL语句:

SELECT DISTINCT `id`, number as mynum, MAX(`sent`) AS sentOn FROM `mTable` GROUP BY `id`
结果是:

id  | mynum  |  sentOn  
------------------------------------
23  | 0      | 2017-03-04 00:00:00
45  | 1.8    | 2017-03-17 00:00:00
预期结果将是:

id  | mynum  |  sentOn  
------------------------------------
23  | 0      | 2017-03-04 00:00:00
45  | 1.9    | 2017-03-17 00:00:00
在第二行中,我希望是具有最新发送日期(2017-03-17 00:00:00)的mynum(1.9)。 相反,SQL查询提供了第二个最新发送日期(2017-03-15 00:00:00)的mynum(1.8)

有什么提示可以解决这个问题吗?
Thank的聚合是获取最新值的错误方法。以下是一种更合适的方式:

select m.*
from mtable m
where m.sent = (select max(m2.sent) from mtable m2 where m.id = m2.id);

如果还需要
mynum
MAX
值,则需要在
mynum
上应用
MAX
,例如:

SELECT `id`, MAX(number) as mynum, MAX(`sent`) AS sentOn 
FROM `mTable` 
GROUP BY `id`

您使用的是
groupby
子句,这是错误的。在
中使用聚合功能,选择
,然后使用
分组依据
。。例如:

SELECT id, MAX(number) as mynum, MAX(sent) AS sentOn 
FROM mTable
GROUP BY id
此链接有助于查看关于分组依据子句的信息。


此group by子句没有错误,在mysql中允许使用这种语法..而sql server不允许使用这种语法
SELECT id, MAX(number) as mynum, MAX(sent) AS sentOn 
FROM mTable
GROUP BY id