是否有可能使用MySQL的GROUP BY多列?

是否有可能在MySQL SELECT查询中GROUP BY多于一列? 例如:

 GROUP BY fV.tier_id AND 'f.form_template_id' 
 GROUP BY col1, col2, col3 

是的,你可以按多列分组。 但是你不能得到正确的答案。

 select * from table group by col1, col2 

哪里,
col1有第一select,col2有第二select。 因为mysql从左到右给出了优先权。

 group by fV.tier_id, f.form_template_id 

是的,但是更多的两列是什么意思呢? 那么,这与每行每个唯一对的分组是一样的。 列出列的顺序改变了行的sorting方式。

在你的例子中,你会写

GROUP BY fV.tier_id, f.form_template_id

同时,代码

GROUP BY f.form_template_id, fV.tier_id

会给出类似的结果,但sorting不同。

 GROUP BY CONCAT(col1, '_', col2) 

为了使用一个简单的例子,我有一个计数器,需要总结一个站点上每个访问页面的唯一IP地址。 这基本上是由pagename,然后通过IP分组。 我用DISTINCT和GROUP BY的组合解决了它。

 SELECT pagename, COUNT(DISTINCT ipaddress) AS visit_count FROM log_visitors GROUP BY pagename ORDER BY visit_count DESC;