簡體   English   中英

選擇除bigquery中的一列外的所有列

[英]Select all column except one column in bigquery

我想排除計數以刪除以下查詢中的重復項

SELECT *, count(1) as count except (count)
  FROM PRD.sites  
  group by site,id ,site_desc,timestamp
  having count(1) < 2

但在[1:29]出現了意外的關鍵字EXCEPT錯誤。 我正在使用standardSQL

您可以在下面嘗試

select * except(count)
from
(
  SELECT *, count(1) as count 
  FROM PRD.sites  
  group by site,id ,site_desc,timestamp
  having count(1) < 2
)X

或者您可以使用row_number()查找重復項

SELECT * except(rn)
FROM (
  SELECT
      *,
      ROW_NUMBER()
          OVER (PARTITION BY site,id ,site_desc,timestamp) as rn
  FROM FROM PRD.sites
)
WHERE rn= 1

您甚至不需要將COUNT()包含在SELECT列表中-下面將非常有用,並將根據列出的字段刪除重復的行

#standardSQL
SELECT AS VALUE ANY_VALUE(t)
FROM PRD.sites t 
group by site,id ,site_desc,timestamp
having count(1) < 2

上方將僅顯示沒有重復的行(基於分組依據中的字段)

如果您寧願根據字段刪除重復項,請在下面使用

#standardSQL
SELECT AS VALUE ANY_VALUE(t)
FROM PRD.sites t 
group by site,id ,site_desc,timestamp

如果您需要基於整個行進行重復數據刪除-您可以在下面使用

SELECT DISTINCT *
FROM PRD.sites

您可以嘗試使用臨時表

/* Get the data into a temp table */
SELECT * INTO #TempTable
FROM YourTable
/* Drop the columns that are not needed */
ALTER TABLE #TempTable
DROP COLUMN ColumnToDrop
/* Get results and drop temp table */
SELECT * FROM #TempTable
DROP TABLE #TempTable

暫無
暫無

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

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