sql - 计数相同值的数量
问题描述
我有一个简单的任务,老实说我不知道如何完成。我有来自 SQL 查询的这些值:
| DocumentNumber | CustomerID |
------------------------------
| AAA | 1 |
| BBB | 1 |
| CCC | 2 |
| DDD | 3 |
-------------------------------
我想显示一个修改过的表格,如下所示:
| DocumentNumber | CustomerID | Repeate |
-----------------------------------------
| AAA | 1 | Multiple |
| BBB | 1 | Multiple |
| CCC | 2 | Single |
| DDD | 3 | Single |
------------------------------------------
所以,这个想法很简单 - 我需要附加一个新列并根据客户 ID 是否存在多次设置“多个”和“单个”值
解决方案
使用窗口函数:
select t.*,
(case when count(*) over (partition by CustomerId) = 1 then 'Single'
else 'Multiple'
end) as repeate
from t;
推荐阅读
- docker - 使用 docker-compose 和自定义 Dockerfile 挂载目录为空
- react-native - 列表项的背景颜色不起作用?
- html - 图片未显示在 div 中
- r - 使用 Rcpp 公开 C 结构?
- flutter - 无法在 Appbar 操作小部件 onPress 触发器内显示快餐栏
- android - launchBillingFlow() 无法显示 Google Play 购买屏幕
- javascript - 使用 JS replace() 方法替换 HTML 实体
- c# - 将 UWP DataGrid 绑定到 MVVM 模型的困惑
- angular - 如何在 Angular 7 中创建博客类别
- java - Java - 数据结构设计 - 固定大小、随机访问、线程安全、有序集合