mysql - 选择表中不同列的计数

标签 mysql sql select count distinct

假设我有一个格式如下的 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/

相关文章:

Mysql 限制插入/更新/删除从触发器调用(而不是从应用程序代码)

php - MySQLi - 这个例子中的 data_seek 有什么意义?

mysql - 在 MySQL 中使用字符串的数字组件对字符串进行数字排序的首选方法是什么?

mysql - 有什么方法可以同时存储 SELECT 结果并输出结果集吗?

MySQL SELECT 条件 CONCAT

mysql - Magento 内部连接和排序

php - mysql ORDER BY "month"与 unixtime

MySQL - 其中出现至少 3 次

SQL RANDOM ORDER BY 连接表

sql - 在 PostgreSQL 中格式化日期