[英]SQL Query Result: Cross Tab/Pivot Table
我正在使用以下查詢:
SELECT t.DATA,
t.TEST_ID,
t.INSERT_DATE,
CASE
WHEN t.PARAMETER_ID = 1 THEN 'Image Path'
WHEN t.PARAMETER_ID = 2 THEN 'Result'
WHEN t.PARAMETER_ID = 3 THEN 'Probability'
END as PARAMETER_ID
FROM (SELECT t.*, count(*) over (partition by TEST_ID) AS cnt
FROM db1 AS t
WHERE PARAMETER_ID = 1
OR PARAMETER_ID = 2
OR PARAMETER_ID = 3
) t
WHERE cnt >= 3;
這將產生表格:
DATA |TEST_ID|PARAMETER_ID|INSERT_DATE
c:\desktop\image1|326803 |Image Path |2021-03-18 13:45:15
Fail |326803 |Result |2021-03-18 13:45:15
0.453289449215 |326803 |Probability |2021-03-18 13:45:15
c:\desktop\image2|326810 |Image Path |2021-03-19 10:01:58
Fail |326810 |Result |2021-03-19 10:01:58
0.692115724087 |326810 |Probability |2021-03-19 10:01:58
c:\desktop\image3|326811 |Image Path |2021-03-19 10:03:00
Fail |326811 |Result |2021-03-19 10:03:00
0.664975941181 |326811 |Probability |2021-03-19 10:03:00
我正在尋找這樣的表格:
Image Path|Result|Probability |INSERT_DATE
c:\desktop\image1|Fail |0.453289449215|2021-03-18 13:45:15
c:\desktop\image2|Fail |0.692115724087|2021-03-19 10:01:58
c:\desktop\image3|Fail |0.664975941181|2021-03-19 10:03:00
是否可以使用 SQL 進行此表操作? 我知道我可以通過pd.crosstab
使用 pd.crosstab。
編輯:使用 Microsoft SQL 服務器版本 13.00.4001
您似乎想要條件聚合:
SELECT t.TEST_ID, t.INSERT_DATE,
MAX(CASE WHEN t.PARAMETER_ID = 1 THEN T.DATA END) as Image_Path,
MAX(CASE WHEN t.PARAMETER_ID = 2 THEN T.DATA END) as Result,
MAX(CASE WHEN t.PARAMETER_ID = 3 THEN T.DATA END) as Probability
FROM db1 AS t
GROUP BY TEST_ID, INSERT_DATE;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.