sql - 基于 2 个字段的计数结果为第 3 个

标签 sql sql-server

SQL 服务器。新手。不知道如何表达我的问题。通过示例尝试:

对于包含这些字段和值的表:

uniqueV, state, locationcode1, locationcode2, typecode 
01, TN, 1, X
02, TN, 1, X
03, TN, 1, Y
04, KY, 2, Z
05, KY, 1, R
06, KY, 1, R
07, KY, 1, R 

我需要一个结果

01, TN, 1, X, 2 -- e.g. 2 occurrences of 1,X in TN
02, TN, 1, X, 2
03, TN, 1, Y, 1
04, KY, 2, Z, 1
05, KY, 1, R, 3
06, KY, 1, R, 3 
07, KY, 1, R, 3 

这个新的第 5 个字段是每个状态中 [typecode] 对出现的计数

================================================== =========

请跟进

生成附加输出列的任何方法,其中包含州、位置代码对中特定类型代码的计数。例如“X”条记录的计数

所以

uniqueV, state, locationcode1, locationcode2, typecode 
01, TN, 1, X
02, TN, 1, X
03, TN, 1, Y
04, KY, 2, Z
05, KY, 1, R
06, KY, 1, R
07, KY, 1, R

结果

01, TN, 1, X, 2 -- e.g. for TN, 1 there are 2 occurances of 'X' records.
02, TN, 1, X, 2
03, TN, 1, Y, 2
04, KY, 2, Z, 0
05, KY, 1, R, 0
06, KY, 1, R, 0
07, KY, 1, R, 0

我以为我可以推断自己,但错了:(

最佳答案

我认为你需要这样的东西:

SELECT *, 
(
SELECT COUNT(*) 
FROM YourTable AS T1
WHERE T1.state = T2.state AND T1.locationcode1 = T2.locationcode1
      AND T1.locationcode2 = T2.locationcode2) AS Occur
FROM YourTable AS T2

关于sql - 基于 2 个字段的计数结果为第 3 个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48329556/

相关文章:

c# - 使用 foreach 循环将不同类型的列表插入到 SQL Server 数据库中

sql - 由两个不同的 GROUP BY 求和

mysql在类似操作中获得最大匹配

sql - 在不忽略空值的情况下计算 SQL Server 中的平均值

php - 使用PDO向数据库中插入数据

php - 数据库架构更改时检查表名的有效方法?

c# - SqlParameter无法与INSERT语句一起使用

php - 选择具有相同值的第一行和最后一行

mysql - 获取所有父节点

SQL 如何在 SQL 中将数字转换为具有最小小数位数(动态小数位数)的文本