我的目标是改变这个:
表1:
Twitter > Streaming Framework > HDFS
.. > Other DB
... > Spark
进入这个:
表2:
ID Day Status
101 1 N
101 2 P
101 3 N
101 4 P
101 5 R
102 1 P
102 2 P
102 3 R
102 4 R
102 5 R
103 2 N
103 3 N
103 4 P
103 5 P
104 3 P
104 4 P
104 5 R
105 4 N
105 5 N
这可能吗?
答案 0 :(得分:1)
如果您的日期"是一个有限的范围(1..7?)然后是的,它有点乏味但可行:
SELECT Id, MAX(CASE Day WHEN 1 THEN Status END) AS "1"
, MAX(CASE Day WHEN 2 THEN Statue END) AS "2"
FROM Table GROUP BY Id ORDER BY Id
CASE在每列中返回Status或NULL。 MAX()将其折叠为单行。
答案 1 :(得分:0)
我认为,您可以使用数据透视表功能来满足您的需求。 希望这有帮助。
SELECT *
FROM
(SELECT ID, status, day
FROM yourtable) AS SourceTable
PIVOT
(
max(status)
FOR day IN (1,2,3,4,5)
) AS PivotTable;
答案 2 :(得分:0)
在 Access 中,您可以使用:
TRANSFORM First([Status]) AS Status
SELECT [ID]
FROM Table1
GROUP BY [ID]
PIVOT [Day];