簡體   English   中英

T-SQL - 對按 ID 分組的行進行子查詢以創建匯總表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM