我试了好几个小时想出一个查询,但我什至不知道这是否有可能将不同行的信息集中在一起
I tried for many hours to come up with a query but I don't even know if this is possible to have information from different rows in one
我有一个样本table存储信息如下:两个子系统是mini1和mini2
System
Date
Sub System
Count
primary
2022-05-11
mini1
103
secondary
2022-05-11
mini2
100
secondary
2022-05-11
mini1
10
backup
2022-05-11
mini2
95
backup
2022-05-11
mini1
11
primary
2022-05-11
mini2
15
primary
2022-04-01
mini1
0
secondary
22022-04-01
mini2
0
secondary
2022-04-01
mini1
100
backup
2022-04-01
mini2
0
backup
2022-04-01
mini1
110
primary
2022-04-01
mini2
0
我想以如下格式获取每个系统的最新信息,其中只考虑最新日期。
System
Latest Date
mini1 Count
mini 2 Count
primary
2022-05-11
103
15
secondary
2022-05-11
10
100
backup
2022-05-11
11
95
这可以通过 sql 实现吗?
做一个GROUP BY
。使用case
表达式做条件聚合.
select System,
max(Date) LatestDate,
sum(case when SubSystem = 'mini1' then count else 0 end) Mini1Count,
sum(case when SubSystem = 'mini2' then count else 0 end) Mini2Count
from tablename
group by System
我有一个样本table存储信息如下:两个子系统是mini1和mini2
System | Date | Sub System | Count |
---|---|---|---|
primary | 2022-05-11 | mini1 | 103 |
secondary | 2022-05-11 | mini2 | 100 |
secondary | 2022-05-11 | mini1 | 10 |
backup | 2022-05-11 | mini2 | 95 |
backup | 2022-05-11 | mini1 | 11 |
primary | 2022-05-11 | mini2 | 15 |
primary | 2022-04-01 | mini1 | 0 |
secondary | 22022-04-01 | mini2 | 0 |
secondary | 2022-04-01 | mini1 | 100 |
backup | 2022-04-01 | mini2 | 0 |
backup | 2022-04-01 | mini1 | 110 |
primary | 2022-04-01 | mini2 | 0 |
我想以如下格式获取每个系统的最新信息,其中只考虑最新日期。
System | Latest Date | mini1 Count | mini 2 Count |
---|---|---|---|
primary | 2022-05-11 | 103 | 15 |
secondary | 2022-05-11 | 10 | 100 |
backup | 2022-05-11 | 11 | 95 |
这可以通过 sql 实现吗?
做一个GROUP BY
。使用case
表达式做条件聚合.
select System,
max(Date) LatestDate,
sum(case when SubSystem = 'mini1' then count else 0 end) Mini1Count,
sum(case when SubSystem = 'mini2' then count else 0 end) Mini2Count
from tablename
group by System