假设我有一个格式如下的 sql 表:
id INT PRIMARY KEY AUTO_INCREMENT,
action TINYINT NOT NULL,
user_id INT NOT NULL
我想构建一个产生与以下相同结果的查询:
SELECT
(SELECT COUNT(*), action FROM table WHERE action=1 AND user_id=1),
(SELECT COUNT(*), action FROM table WHERE action=2 AND user_id=1),
(SELECT COUNT(*), action FROM table WHERE action=3 AND user_id=1),
...
(SELECT COUNT(*), action FROM table WHERE action=n AND user_id=1)
(1<->n 只是action
的范围)
但没有所有的冗余和低效率。
最佳答案
如果我对问题的理解正确,这就是您要查找的内容:
SELECT action, COUNT(*)
FROM your_table
WHERE user_id = 1
GROUP BY action
关于mysql - 选择表中不同列的计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19701348/