mysql - 如何为 3 列编写查询 DISTINCT

标签 mysql sql

我想按(客户、prop1、prop2)对每组唯一行的状态求和。 像这样:DISTINCT(client, prop1, prop2)

这是我的 table :

client  |  prop1  | prop2  | status
----------------------------------
name1   |  pr100  | pr310  | OK
name1   |  pr100  | pr310  | error
name1   |  pr100  | pr310  | OK
name1   |  pr100  | pr310  | OK
name2   |  pr255  | pr320  | OK
name2   |  pr255  | pr320  | OK
name2   |  pr255  | pr320  | error
name2   |  pr400  | pr320  | error
name3   |  pr400  | pr500  | OK
name3   |  pr400  | pr500  | OK

我试图得到这个:

client  |  prop1  | prop2  | OK  | error
----------------------------------
name1   |  pr100  | pr310  | 3   |  1
name2   |  pr255  | pr320  | 2   |  1
name2   |  pr400  | pr320  | 0   |  1
name3   |  pr400  | pr500  | 2   |  0

请帮忙

最佳答案

这是一个聚合,而不是select distinct:

select client, prop1, prop2,
       sum(status = 'OK') as ok, sum(status = 'error') as error
from t
group by client, prop1, prop2;

关于mysql - 如何为 3 列编写查询 DISTINCT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35455893/

相关文章:

sql - 使用链接到 SQL 2008 的表对 Access 2003 数据库中的表进行排序是大小写锁定问题

Mysql 将 max id 的行更新为 sum 语句的值

mysql - RoR3 和 MySQL 错误 : dyld: Symbol not found: _mysql_init

mysql - MATCH ... AGAINST 未找到行

mysql - 将左连接与 min 一起使用

mysql - SQL查询: compare strings using concatenate and strcmp

java - 是每个数据库引擎 (jdbc) 的 Sql 语法

mysql- Mysql2::错误:第 1 行 'description' 列的数据太长

php - Laravel exec() 产生一个 mysql-dump 空文件

MySQL 最近 7 天被忽略