mysql - 如何计算出总不同值减去 MySQL 中的分组不同值
问题描述
给定样本表:
+----+----------+---------+------+
| id | userName | storeId | cost |
+----+----------+---------+------+
| 1 | foo | 1 | 10 |
| 2 | bar | 1 | 10 |
| 3 | baz | 5 | 5 |
| 4 | baz | 3 | 20 |
| 5 | qux | 1 | 5 |
| 6 | qux | 4 | 20 |
| 7 | qux | 15 | 30 |
| 8 | qux | 17 | 40 |
| 9 | qux | 3 | 5 |
| 10 | quux | 6 | 20 |
+----+----------+---------+------+
我想算出有多少人在每家商店购买了,有多少人没有购买。我希望报告显示按商店分组的结果。
我知道该语句select storeId, count(distinct username) as total from purchases group by storeId
为我提供了在每家商店购买了多少人,但我想select count(distinct userName) from purchases;
在另一列中减去查询结果。我希望示例输出显示如下。
+---------+-----------+--------------+
| storeId | purchased | notPurchased |
+---------+-----------+--------------+
| 1 | 3 | 2 |
| 3 | 2 | 3 |
| 4 | 1 | 4 |
| 5 | 1 | 4 |
| 6 | 1 | 4 |
| 15 | 1 | 4 |
| 17 | 1 | 4 |
+---------+-----------+--------------+
解决方案
您可以在 IN() 函数中使用 NOT 条件
推荐阅读
- asp.net-mvc - mvc.sitemap 中的 2 个节点指的是具有不同参数的 1 个操作,它们未显示在面包屑中
- sql - 当我在 BCP 命令中使用“>”大于字符时该功能不起作用
- django - 如何在select2中显示一棵树?
- jquery - 在加载而不是单击时运行 MultiSelect
- angular - 使用TestCafe登录后如何捕获角度页面?
- regex - 具有多个目录的 Url 的正则表达式
- java - 如何根据原始数字增加总数
- c++ - C++ 为什么原始双精度数组中的赋值似乎比双变量赋值要快得多?
- java - 具有缓存功能的 Http Proxy servlet
- python - 如何在 tkinter 组合框的下拉列表中添加值?