我有一个表有Identity,RecordId,Type,Reading和IsDeleted列。 Identity是自动增量的主键,RecordId是可以有重复值的整数,Type是可以是'one'或'average'的读数类型,Reading是包含任何整数值的整数,IsDeleted是可以是0或1,即错误或真实。 现在,我希望包含所有记录的查询以这种方式,如果每个RecordId的COUNT(Id)大于2,那么显示该RecordId的所有记录。SQL查询过滤记录的计数记录
如果该特定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
答案结果可以是
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
总之我想跳过其具有相同的值,其为“计数的平均读数的“一”型读取一个“类型的阅读不超过一个。任何人都可以有想法?
人都标记下来,但是不准备,为什么(很烦人)评论 - 问题不太清楚了,但还有很多更糟 - 你有没有试图写一个查询呢?你能告诉我们你的尝试吗? – whytheq
更糟糕的是,收到upvote 8 :( – codingbiz