【发布时间】:2012-09-25 06:28:49
【问题描述】:
我有一个表,其中包含 Identity、RecordId、Type、Reading 和 IsDeleted 列。 Identity 是自动递增的主键,RecordId 是可以有重复值的整数,Type 是可以是“一”或“平均”的读数类型,读数是包含任何整数值的整数,IsDeleted 是位可以是 0 或 1,即假或真。 现在,我希望查询包含表的所有记录,如果每个 RecordId 的 COUNT(Id) 大于 2,则显示该 RecordId 的所有记录。
如果该特定 RecordId 的 COUNT(Id) == 2 并且两者的读数值,即“一个”或“平均”类型的记录相同,则仅显示平均记录。
如果 COUNT(Id) ==1 则仅显示该记录。
例如:
Id RecordId Type Reading IsDeleted
1 1 one 4 0
2 1 one 5 0
3 1 one 6 0
4 1 average 5 0
5 2 one 1 0
6 2 one 3 0
7 2 average 2 0
8 3 one 2 0
9 3 average 2 0
10 4 one 5 0
11 4 average 6 0
12 5 one 7 0
Ans 结果可以是
Id RecordId Type Reading IsDeleted
1 1 one 4 0
2 1 one 5 0
3 1 one 6 0
4 1 average 5 0
5 2 one 1 0
6 2 one 3 0
7 2 average 2 0
9 3 average 2 0
10 4 one 5 0
11 4 average 6 0
12 5 one 7 0
简而言之,我想跳过具有相同值的平均读数的“一”型读数,并且“一”型读数的计数不超过一。
【问题讨论】:
-
人们对此进行了标记,但不准备评论原因(非常烦人)-问题不太清楚,但还有很多更糟糕的问题-您是否尝试过编写查询?你能告诉我们你的尝试吗?
-
获得 8 票赞成的还有很多 :(
标签: sql sql-server sql-server-2008 tsql sql-server-2008-r2