簡體   English   中英

distinct 和 Over 分區

[英]distinct and Over partition

我正在處理 bigquery 中的查詢,但遇到以下問題。 我的查詢如下:

SELECT DISTINCT (concat(rut,created_at)),*,ROW_NUMBER () OVER (PARTITION BY rut ORDER BY created_at ASC) AS ranking 
FROM table 
WHERE DATE(created_at) <= "2020-12-03" 
order by rut,ranking

問題是“DISCINT”並沒有消除重復數據,而是如果我消除了OVER PARTITION並將查詢保留如下,如果它消除了重復數據。

SELECT DISTINCT (concat(rut,created_at)) ,*
FROM table 
WHERE DATE(created_at) <= "2020-12-03" 
order by rut

顯然,這是 disint 和 OVER PARTITION 如何工作的問題,但我找不到解決方案

你需要這樣做:

select * ,ROW_NUMBER () OVER (PARTITION BY rut ORDER BY created_at ASC) AS ranking  
from (
SELECT DISTINCT (concat(rut,created_at)),*
FROM table 
WHERE DATE(created_at) <= "2020-12-03" 
) tt
order by rut,ranking

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM