是否可以使用 MySQL 对多列进行分组?

问题描述 投票:0回答:8

是否可以在 MySQL

GROUP BY
查询中
SELECT
多个列?例如:

GROUP BY fV.tier_id AND 'f.form_template_id'
mysql sql group-by
8个回答
386
投票
GROUP BY col1, col2, col3

194
投票

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

SELECT * FROM table
GROUP BY col1, col2

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


32
投票

是的,但是按多两列分组意味着什么?嗯,这与按每行的每个唯一对进行分组相同。列出列的顺序会改变行的排序方式。

在你的例子中,你会写

GROUP BY fV.tier_id, f.form_template_id

同时,代码

GROUP BY f.form_template_id, fV.tier_id

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


22
投票

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

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

21
投票
group by fV.tier_id, f.form_template_id

20
投票

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

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

0
投票

是的,您可以在查询中按多列进行分组

GROUP BY fV.tier_id, f.form_template_id

-8
投票
GROUP BY CONCAT(col1, '_', col2)
© www.soinside.com 2019 - 2024. All rights reserved.