是否可以在 MySQL
GROUP BY
查询中 SELECT
多个列?例如:
GROUP BY fV.tier_id AND 'f.form_template_id'
GROUP BY col1, col2, col3
是的,您可以按多列进行分组。例如,
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
会给出类似的结果,但排序不同。
如果你喜欢(我需要应用这个)同时按两列分组,我刚刚看到了这一点:
SELECT CONCAT (col1, '_', col2) AS Group1 ... GROUP BY Group1
group by fV.tier_id, f.form_template_id
举一个简单的例子,我有一个计数器,需要汇总网站上每个访问页面的唯一 IP 地址。基本上是按页面名称分组,然后按 IP 分组。我用 DISTINCT 和 GROUP BY 的组合解决了这个问题。
SELECT pagename, COUNT(DISTINCT ipaddress) AS visit_count FROM log_visitors GROUP BY pagename ORDER BY visit_count DESC;
是的,您可以在查询中按多列进行分组
GROUP BY fV.tier_id, f.form_template_id
GROUP BY CONCAT(col1, '_', col2)