如何使用具有多个 id 的 CASE WHEN 语句
How to use CASE WHEN statement with multiple id
我在问题中使用 CASE WHEN 语句时遇到问题。我有多个 ID 的数据,但每个多个 ID 都有不同的问题。
我想在列而不是行中显示来自每个相同 ID 的每个问题。我尝试使用 case when 和 group by 但第二个问题不显示
这是我的数据:
ID
Ticket
Problem
Date
400
A
OFF
2020-12-30 07:00:00
400
A
OUT
2020-12-30 09:00:00
410
A
OFF
2020-12-30 09:00:00
420
B
OUT
2020-12-30 07:00:00
430
B
OUT
2020-12-30 09:00:00
430
B
OUT
2020-12-30 13:00:00
我要这样显示
ID
Ticket
2020-12-30 07:00:00
2020-12-30 09:00:00
2020-12-30 13:00
400
A
OFF
OUT
-
410
A
-
OFF
-
420
B
OUT
-
-
430
B
OUT
-
OUT
谢谢
您可以按如下方式使用条件聚合:
Select ticket,
max(case when date = your_date1 then problem end) as date_1_problem,
max(case when date = your_date2 then problem end) as date_2_problem,
max(case when date = your_date3 then problem end) as date_3_problem
From your_table t
Group by ticket;
请注意,您必须在此查询中提供日期 1、日期 2 和日期 3 的值。
我在问题中使用 CASE WHEN 语句时遇到问题。我有多个 ID 的数据,但每个多个 ID 都有不同的问题。
我想在列而不是行中显示来自每个相同 ID 的每个问题。我尝试使用 case when 和 group by 但第二个问题不显示
这是我的数据:
ID | Ticket | Problem | Date |
---|---|---|---|
400 | A | OFF | 2020-12-30 07:00:00 |
400 | A | OUT | 2020-12-30 09:00:00 |
410 | A | OFF | 2020-12-30 09:00:00 |
420 | B | OUT | 2020-12-30 07:00:00 |
430 | B | OUT | 2020-12-30 09:00:00 |
430 | B | OUT | 2020-12-30 13:00:00 |
我要这样显示
ID | Ticket | 2020-12-30 07:00:00 | 2020-12-30 09:00:00 | 2020-12-30 13:00 |
---|---|---|---|---|
400 | A | OFF | OUT | - |
410 | A | - | OFF | - |
420 | B | OUT | - | - |
430 | B | OUT | - | OUT |
谢谢
您可以按如下方式使用条件聚合:
Select ticket,
max(case when date = your_date1 then problem end) as date_1_problem,
max(case when date = your_date2 then problem end) as date_2_problem,
max(case when date = your_date3 then problem end) as date_3_problem
From your_table t
Group by ticket;
请注意,您必须在此查询中提供日期 1、日期 2 和日期 3 的值。