[英]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.