将 OVER 与 COUNT 一起使用时,将两个参数与 PARTITION BY 一起使用是什么意思?
When Using OVER with COUNT, What Does It Mean to Use Two Arguments With PARTITION BY?
SELECT
M.Listing_ID,
COUNT(1) OVER (PARTITION BY M.User_ID,EXTRACT(MONTH FROM M.Start_Date)
ORDER BY M.Start_Date, M.Listing_ID ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) X
FROM LISTINGS M
这里是LISTINGS
:
列表
User_ID Listing_ID Start_Date
A 1 2014-02-14
A 2 2014-03-10
A 3 2014-03-22
B 4 2014-06-08
B 5 2014-10-02
C 6 2014-09-04
C 7 2014-09-04
C 8 2014-09-04
C 9 2014-09-05
C 10 2014-10-03
我正在尝试解码此代码的内容 returns 但我真的不知道按 2 个类别进行分区是什么意思。有人可以阐明吗?
您将获得按用户和按月的行数 COUNT
。 PARTITION BY
告诉数据库何时重置计数
SELECT
M.Listing_ID,
COUNT(1) OVER (PARTITION BY M.User_ID,EXTRACT(MONTH FROM M.Start_Date)
ORDER BY M.Start_Date, M.Listing_ID ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) X
FROM LISTINGS M
这里是LISTINGS
:
列表
User_ID Listing_ID Start_Date
A 1 2014-02-14
A 2 2014-03-10
A 3 2014-03-22
B 4 2014-06-08
B 5 2014-10-02
C 6 2014-09-04
C 7 2014-09-04
C 8 2014-09-04
C 9 2014-09-05
C 10 2014-10-03
我正在尝试解码此代码的内容 returns 但我真的不知道按 2 个类别进行分区是什么意思。有人可以阐明吗?
您将获得按用户和按月的行数 COUNT
。 PARTITION BY
告诉数据库何时重置计数