mysql - Count If MySql 具有不同

标签 mysql sql

请帮助我进行此查询,我有此数据

customeid | param
1001      |  A
1001      |  B
1001      |  C
1002      |  B
1002      |  A
1003      |  A
1003      |  B
1004      |  A

我需要区分customeid,我使用此查询,但结果不正确

SELECT
  COUNT(DISTINCT IF(param not in ('A'),1,0))
FROM
  table

输出结果

count   
  3 (from customeid 1001,1002,1003)

如果参数不在 A 中并且无法添加查询,如何区分customeid

最佳答案

你用count ifdistinct 来判断没有问题,但是有问题,如果满足条件就需要返回customeid,否则需要返回null

您可以关注此查询。

SELECT
  COUNT(DISTINCT IF(param not in ('A'),customeid,NULL))
FROM
  table

sqlfiddle

注意

当该值为 null 时,

COUNT 不会累加

关于mysql - Count If MySql 具有不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51416356/

相关文章:

mysql - 使用 JDBC 对数据进行分组

mysql - 运行 CREATE TABLE 脚本时出现错误 1064

php - 在 App Engine for PHP 中优化 MySQL 连接的推荐方法是什么?

php - 更新重复记录保持1条记录不变的SQL语句

mysql - SQL计算所有行数

mysql - 电影关系数据库设计

java - 当管理员和其他普通用户按下相同的登录按钮时,如何让管理员和其他普通用户访问 Java 中的不同 GUI 到 MySQL 连接?

mysql - 左连接不适用于 codeigniter

sql - 如何插入包含撇号(单引号)的值?

mysql - 如何将多行作为单个对象传递