Mysql ORDER BY然后按日期时间值分组
我有以下MySQL查询: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
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
对行进行排序,然后对它们进行分组,这样我就只剩下最新的记录,而不是首先放入数据库的记录。