[英]T-SQL - subqueries on rows grouped by ID to create a summary table
我有一個帶有 id 和兩個 int 字段“A”和“B”的表“MyTable”:
MyTable
+-------+-----+-----+
| ID | A | B |
+-------+-----+-----+
| 99 | 0 | 1 |
| 99 | 0 | 1 |
| 99 | 0 | 0 |
| 99 | 1 | 1 |
| 99 | 0 | 1 |
| 100 | 1 | 0 |
| 100 | 0 | 0 |
| 100 | 0 | 0 |
| 444 | 1 | 0 |
| 88 | 0 | 0 |
| 88 | 0 | 0 |
| 88 | 0 | 1 |
+-------+-----+-----+
我想要一個 T-SQL 查詢為每個不同的 id 返回一行,其中包含:
每個不同的 ID
該 ID 是否存在具有“a”非零值的行
該 ID 是否存在具有“b”非零值的行
像這樣:
+-------+-----+-----+
| ID | A | B |
+-------+-----+-----+
| 99 | 1 | 1 |
| 100 | 1 | 0 |
| 444 | 1 | 0 |
| 88 | 0 | 1 |
+-------+-----+-----+
我可以按 ID 分組,但我不知道如何在每個組上創建連接或子查詢以獲得所需的結果。
select id, max(case when A<>0 then 1 else 0 end)A, max(case when B<>0 then 1 else 0 end)B
from mytable
group by id
或者你可以直接使用,因為你的值是 1 和 0。但是如果值不是那個,請使用第一個查詢。
select id, max(A)A, max(B)B
from mytable
group by id
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.