如何防止查询在SQL中生成多个不必要的列?

问题描述 投票:0回答:1

这里是 SQL 初学者。所以到目前为止,当我尝试根据“一代”列查找总旅行时间时,我得到了这个:

SELECT
    generation,
    SUM(CASE WHEN generation = 'Millennials' THEN Rental_Duration_seconds END) AS MillennialTT,
    SUM(CASE WHEN generation = 'Generation Z' THEN Rental_Duration_seconds END) AS GenZTT,
    SUM(CASE WHEN generation = 'Generation X' THEN Rental_Duration_seconds END) AS GenXTT,
    SUM(CASE WHEN generation = 'Baby Boomers' THEN Rental_Duration_seconds END) AS BBYBoomerTT,
    SUM(CASE WHEN generation = 'Silent Generation' THEN Rental_Duration_seconds END) AS SilentGenTT
FROM
    dbo.2019_Q2_Trips
GROUP BY
    generation;

此查询将生成一个包含多个列的表,这些列具有不必要的 NULL 值。我可以使用 ELSE 语句将 NULL 值设置为 0,但这不会使列消失。

有没有更好的方法来做到这一点,不会生成多列?

sql ssms
1个回答
0
投票

是的,有。

SELECT generation, SUM(Rental_Duration_Seconds) FROM 2019_Q2_Trips GROUP BY generation;
© www.soinside.com 2019 - 2024. All rights reserved.