Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.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 ORDER BY然后按日期时间值分组_Mysql_Sql_Group By_Sql Order By - Fatal编程技术网

Mysql ORDER BY然后按日期时间值分组

Mysql ORDER BY然后按日期时间值分组,mysql,sql,group-by,sql-order-by,Mysql,Sql,Group By,Sql Order By,我有以下MySQL查询: SELECT t.date_time, COUNT(t.submission_id) AS click_count, s.title, s.first_name, s.family_name, s.email, ut.ukip_name, a.advertiser_name FROM recards.tracking t INNER JOIN submissions s ON t.submission_id = s.submission_id INNER JOIN

我有以下MySQL查询:

SELECT t.date_time, COUNT(t.submission_id) AS click_count, s.title, s.first_name, s.family_name, s.email, ut.ukip_name, a.advertiser_name 
FROM recards.tracking t 
INNER JOIN submissions s ON t.submission_id = s.submission_id 
INNER JOIN form_settings fs ON t.form_id = fs.form_id 
INNER JOIN advertisers a ON t.advertiser_id = a.advertiser_id 
INNER JOIN db2829.ukip_titles ut ON fs.ukip_title_id = ut.ukip_title_id
WHERE t.advertiser_id = 621 
GROUP BY t.submission_id 
ORDER BY t.date_time DESC
但是,当然,
orderby
是在
groupby
之后完成的,因此我只得到第一条记录,因为我需要最后一条记录。通过调查,我了解到在
SELECT
期间在列上使用
MAX()
,但这不适用于
datetime
类型


还有别的工作吗?也许在
选择中嵌入
选择
?不幸的是,就我所掌握的
MySQL
知识而言,我所掌握的只是这些

您只是按t.submission\u id进行分组,其他什么都没有,因此此查询将无法工作。其他属性需要通过
添加到
组,或者需要从
选择中删除


就订购而言,将
MAX(t.date\u time)
MIN(t.date\u time)
添加到您的
中,选择
,然后选择
ordering BY
,其结果为升序或降序

结果是我只是忘记了
作为
MAX()之后的
MAX(t.date\u time)作为top\u time
它可以正常工作

我的完整查询工作:

SELECT MAX(t.date_time) AS top_time, COUNT(t.submission_id) AS click_count, s.title, s.first_name, s.family_name, s.email, ut.ukip_name, a.advertiser_name 
FROM recards.tracking t 
INNER JOIN submissions s ON t.submission_id = s.submission_id 
INNER JOIN form_settings fs ON t.form_id = fs.form_id 
INNER JOIN advertisers a ON t.advertiser_id = a.advertiser_id 
INNER JOIN db2829.ukip_titles ut ON fs.ukip_title_id = ut.ukip_title_id
WHERE t.advertiser_id = 621 
GROUP BY t.submission_id 
ORDER BY top_time DESC

“但这对datetime类型不起作用。”为什么不呢?是什么让你认为
MAX()
datetime
值不起作用?我真的不理解你的问题。@darkajax,因为我已经试过了,而且我用
SELECT MAX(t.date\u time)
。@jzd,我需要按最新的
datetime
对行进行排序,然后对它们进行分组,这样我就只剩下最新的记录,而不是首先放入数据库的记录。