我有一个疑问
SELECT a.Name, b.Date FROM
Table1 a
JOIN Table2 b on a.deviceID=b.id
where a.date > '2022-10-01'
这给了我一个
Name Date
A1 '2022-10-01 12:13'
A2 '2022-10-02 14:15'
A2 '2022-10-02 15:16'
A5 '2022-10-03 16:19'
等等。
我想达到的结果是
A1 A2 A5
'2022-10-01 12:13' '2022-10-02 14:15''2022-10-03 16:19'
'2022-10-02 15:16'
最理想的结果是每天只接收一个日期。我可以使用Pivot来实现吗?
2条答案
按热度按时间cczfrluj1#
如果没有聚合,透视就不能完成(在T-SQL中)。至于你想要达到什么,似乎你需要对
PIVOT
的值进行Name
/条件聚合,并对ROW_NUMBER
的值进行分组。我个人更喜欢使用条件聚合而不是限制性的
PIVOT
操作符,但我已经包含了这两种操作符的示例:hjzp0vay2#
如果您想要枢纽分析,但要将所有相关值保留在相同字段中,而不是建立假列,您可以使用STRING_AGG。您可以使用CHAR(10)来取代“,”分隔符号,或使用HTML来新增分行符号。您不会在SSMS中看到它,但视前端而定,它会呈现两个项目,一个在另一个之下。