[英]SQL Query from tables data
inspector_id fare_evasion_dailybasis t4_date
5 11 2020-12-01
6 7 2020-12-01
7 4 2020-12-01
3 23 2020-12-01
1 18 2020-12-01
2 5 2020-12-01
4 16 2020-12-01
5 7 2020-12-02
6 9 2020-12-02
9 5 2020-12-02
3 26 2020-12-02
6 2 2020-12-03
5 5 2020-12-03
9 3 2020-12-03
7 12 2020-12-03
3 18 2020-12-03
8 6 2020-12-03
1 16 2020-12-04
4 7 2020-12-04
6 9 2020-12-04
5 5 2020-12-04
2 4 2020-12-04
2 4 2020-12-05
5 8 2020-12-05
1 2 2020-12-05
How to query the above table to have 9 columns of inspectors id containing value of fare evasion value followed by the t4_date (Total 10 columns).如何查询上表有 9 列检查员 id,其中包含逃票值的值,后跟 t4_date(共 10 列)。 eg 16 4 null 7 5 9 null null null 2020-12-04例如 16 4 null 7 5 9 null null Z37A6259CC0C1DAE0499A78020429
In Oracle, you can use PIVOT
:在 Oracle 中,您可以使用PIVOT
:
SELECT *
FROM table_name
PIVOT (
SUM( fare_evasion_dailybasis )
FOR inspector_id IN (
1 AS insp1,
2 AS insp2,
3 AS insp3,
4 AS insp4,
5 AS insp5,
6 AS insp6,
7 AS insp7,
8 AS insp8,
9 AS insp9
)
)
or conditional aggregation (which works in Oracle and MySQL):或条件聚合(适用于 Oracle 和 MySQL):
SELECT t4_date,
SUM( CASE inspector_id WHEN 1 THEN fare_evasion_dailybasis END ) AS insp1,
SUM( CASE inspector_id WHEN 2 THEN fare_evasion_dailybasis END ) AS insp2,
SUM( CASE inspector_id WHEN 3 THEN fare_evasion_dailybasis END ) AS insp3,
SUM( CASE inspector_id WHEN 4 THEN fare_evasion_dailybasis END ) AS insp4,
SUM( CASE inspector_id WHEN 5 THEN fare_evasion_dailybasis END ) AS insp5,
SUM( CASE inspector_id WHEN 6 THEN fare_evasion_dailybasis END ) AS insp6,
SUM( CASE inspector_id WHEN 7 THEN fare_evasion_dailybasis END ) AS insp7,
SUM( CASE inspector_id WHEN 8 THEN fare_evasion_dailybasis END ) AS insp8,
SUM( CASE inspector_id WHEN 9 THEN fare_evasion_dailybasis END ) AS insp9
FROM table_name
GROUP BY t4_date;
Which, for your sample data:其中,对于您的示例数据:
CREATE TABLE table_name ( inspector_id, fare_evasion_dailybasis, t4_date ) AS
SELECT 5, 11, DATE '2020-12-01' FROM DUAL UNION ALL
SELECT 6, 7, DATE '2020-12-01' FROM DUAL UNION ALL
SELECT 7, 4, DATE '2020-12-01' FROM DUAL UNION ALL
SELECT 3, 23, DATE '2020-12-01' FROM DUAL UNION ALL
SELECT 1, 18, DATE '2020-12-01' FROM DUAL UNION ALL
SELECT 2, 5, DATE '2020-12-01' FROM DUAL UNION ALL
SELECT 4, 16, DATE '2020-12-01' FROM DUAL UNION ALL
SELECT 5, 7, DATE '2020-12-02' FROM DUAL UNION ALL
SELECT 6, 9, DATE '2020-12-02' FROM DUAL UNION ALL
SELECT 9, 5, DATE '2020-12-02' FROM DUAL UNION ALL
SELECT 3, 26, DATE '2020-12-02' FROM DUAL UNION ALL
SELECT 6, 2, DATE '2020-12-03' FROM DUAL UNION ALL
SELECT 5, 5, DATE '2020-12-03' FROM DUAL UNION ALL
SELECT 9, 3, DATE '2020-12-03' FROM DUAL UNION ALL
SELECT 7, 12, DATE '2020-12-03' FROM DUAL UNION ALL
SELECT 3, 18, DATE '2020-12-03' FROM DUAL UNION ALL
SELECT 8, 6, DATE '2020-12-03' FROM DUAL UNION ALL
SELECT 1, 16, DATE '2020-12-04' FROM DUAL UNION ALL
SELECT 4, 7, DATE '2020-12-04' FROM DUAL UNION ALL
SELECT 6, 9, DATE '2020-12-04' FROM DUAL UNION ALL
SELECT 5, 5, DATE '2020-12-04' FROM DUAL UNION ALL
SELECT 2, 4, DATE '2020-12-04' FROM DUAL UNION ALL
SELECT 2, 4, DATE '2020-12-05' FROM DUAL UNION ALL
SELECT 5, 8, DATE '2020-12-05' FROM DUAL UNION ALL
SELECT 1, 2, DATE '2020-12-05' FROM DUAL
Both output: output:
T4_DATE | T4_DATE | INSP1 | INSP1 | INSP2 | INSP2 | INSP3 | INSP3 | INSP4 | INSP4 | INSP5 | INSP5 | INSP6 | INSP6 | INSP7 | INSP7 | INSP8 | INSP8 | INSP9:------------------ | INSP9:----------------- | ----: | ----: | ----: | ----: | ----: | ----: | ----: | ----: | ----: | ----: | ----: | ----: | ----: | ----: | ----: | ----: | ----: 2020-12-03 00:00:00 | ----: 2020-12-03 00:00:00 | null | null | null | null | 18 | 18 | null | null | 5 | 5 | 2 | 2 | 12 | 12 | 6 | 6 | 3 2020-12-05 00:00:00 | 3 2020-12-05 00:00:00 | 2 | 2 | 4 | 4 | null | null | null | null | 8 | 8 | null | null | null | null | null | null | null 2020-12-02 00:00:00 | null 2020-12-02 00:00:00 | null | null | null | null | 26 | 26 | null | null | 7 | 7 | 9 | 9 | null | null | null | null | 5 2020-12-04 00:00:00 | 5 2020-12-04 00:00:00 | 16 | 16 | 4 | 4 | null | null | 7 | 7 | 5 | 5 | 9 | 9 | null | null | null | null | null 2020-12-01 00:00:00 | null 2020-12-01 00:00:00 | 18 | 18 | 5 | 5 | 23 | 23 | 16 | 16 | 11 | 11 | 7 | 7 | 4 | 4 | null | null | null null
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.