sql - 根据第一列中的唯一值计算第二列中值的出现次数
问题描述
解释这一点的最简单方法是在 Oracle SQL 中给出这个表......
+-----------------+------------+
| COUNTRY | VALUE |
+-----------------+------------+
| England | A |
| England | A |
| England | A |
| England | B |
| England | B |
| France | A |
| France | A |
| France | B |
+-----------------+------------+
我将如何产生这个结果,即 COUNTRY 列中唯一值的 A 和 B 的计数
+-----------+------------+------------+
| COUNTRY | COUNT(A) | COUNT(B) |
+-----------+------------+------------+
| England | 3 | 2 |
| France | 2 | 1 |
+-----------+------------+------------+
我确定这已经回答了,我只是不知道如何问这个问题。谢谢
解决方案
select country,
sum( case when value = 'A' then 1 else 0 end ) numA,
sum( case when value = 'B' then 1 else 0 end ) numB
from table
group by country
是条件聚合的一个例子
推荐阅读
- react-native - 我不能用父视图包装子(图像,文本输入)。我怎样才能解决这个问题?
- javascript - 反应:道具。
不是函数 - java - kafka consumer API Magic v1 不支持记录头
- angular - 如何使科尔多瓦应用程序接受任何证书
- django - 如何使用 django 在下拉列表中的可编辑表单中获取选定的下拉列表值
- angular - 路由更改 URL 但不显示相应页面
- c# - C# - 执行查询时登录无效
- git - 复制数百个独立 git 存储库的状态
- xml - 我想使用 Powershell 将 XML 更改为 Webconfig
- ruby-on-rails - Rails / Webpacker:子域的scss中错误的图像url(设置了relative_url_root)