这里是我的表:如何在MySQL中完全按两个字段进行分组?
gw_id |gw_payload |gw_name |gw_ref |gw_time |gw_created_time |
------|-----------|--------|-------|--------------------|--------------------|
1 |aaa |PHP |0.1.1 |2015-11-11 11:34:41 |2015-11-11 13:59:44 |
2 |bbb |PHP |0.1.1 |2015-11-11 11:34:41 |2015-11-11 13:59:57 |
3 |ccc |RUBY |0.1.2 |2015-11-10 01:34:41 |2015-11-10 13:59:57 |
4 |ddd |RUBY |0.1.4 |2015-11-10 02:34:41 |2015-11-10 16:59:57 |
我想gw_name
抓住记录组,我想获得最新的gw_ref
和最新gw_time
。所以,我想下面:
gw_name |gw_ref_max |gw_time_max |
--------|-----------|--------------------|
RUBY |0.1.4 |2015-11-10 02:34:41 |
PHP |0.1.1 |2015-11-11 11:34:41 |
我使用这个SQL,它的工作原理,但我不认为这是正确的,我很担心:
select gw_name, max(gw_ref) as gw_ref_max, max(gw_time) as gw_time_max
from tbl group by gw_name order by gw_time,gw_created_time desc
那么究竟是什么正确的SQL我应该写?
SQL语句对我来说似乎很好。你为什么认为这是错的? – Mureinik
你想得到'最新的gw_ref和最新的gw_time'或''最新的gw_ref和与之相对应的gw_time'。如果你想最新的那么你的查询似乎确定。如果你想'最新的gw_ref和它对应的gw_time',那么你在WHERE子句中包含条件来检查gw_ref =(从...中选择max(gw_ref))。 – PK20
@ PK20,是的,我想与最新的'gw_name',@Mureinik,我很担心,因为我不认为我可以在字符串('gw_ref')字段使用MAX()。 – Phoenix