关于sql:使用MySQL可以GROUP BY多个列吗?

Is it possible to GROUP BY multiple columns using MySQL?

在MySQL SELECT查询中是否可以GROUP BY多个列? 例如:

1
GROUP BY fV.tier_id AND 'f.form_template_id'


1
GROUP BY col1, col2, col3

是的,您可以按多列进行分组。 例如,

1
2
SELECT * FROM table
GROUP BY col1, col2

结果首先按col1分组,然后按col2分组。 在MySQL中,列首选项从左到右。


是的,但更多两列的分组是什么意思? 嗯,它与每行每个唯一对的分组相同。 列出列的顺序会更改行的排序方式。

在你的例子中,你会写

GROUP BY fV.tier_id, f.form_template_id

同时,代码

GROUP BY f.form_template_id, fV.tier_id

会给出类似的结果,但排序方式不同。


1
group by fV.tier_id, f.form_template_id

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

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


如果你喜欢(我需要同时应用这个)组两个列,我只是看到了这一点:

1
SELECT CONCAT (col1, '_', col2) AS Group1 ... GROUP BY Group1


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