SQL GROUP BY用法

Aba*_*a74 0 sql sqlite transformation

我在这里从Codecademy做SQL转换课程.我不确定他们为什么在GROUP BY子句之后使用这些数字以及这些数字正在做什么.任何人都可以通过这个课程这么好,让我知道吗?

SELECT dep_month,
          dep_day_of_week,
           dep_date,
           COUNT(*) AS flight_count
      FROM flights
     GROUP BY 1,2,3
Run Code Online (Sandbox Code Playgroud)

Tim*_*sen 6

GROUP BY子句中的数字只是SELECT从左到右引用列表中的列.因此,您的查询与以下内容相同:

SELECT
    dep_month,
    dep_day_of_week,
    dep_date,
    COUNT(*) AS flight_count
FROM flights
GROUP BY
    dep_month,
    dep_day_of_week,
    dep_date
Run Code Online (Sandbox Code Playgroud)

我写的上述查询是我在实践中使用的.原因是GROUP BY 1,2,3位置而不是列.如果有人重构SELECT后者,他就有可能破坏你的查询.