Count
在查詢中使用 DISTINCT 和 COUNT
我在同一個查詢中使用
DISTINCT
and時遇到問題。COUNT
我想獲得獨特的物品,然後獲得每個月的總數。(我已經在兩個查詢中完成了此操作,但我知道有更好的方法。)詢問:
SELECT FORMAT_TIMESTAMP('%Y-%m', Sell_Date) AS Sell_Date, count(*) Total_Sold FROM `project.dataset.items` GROUP BY Sell_Date ORDER BY Sell_Date
結果(片段):
Row Sell_Date Total_Sold 1 2010-05 15 2 2010-06 40 3 2010-07 75 4 2010-08 20
這是我想要的,但是,這包含重複的
Item_Id
條目。如果我
SELECT
用這個替換上面的:SELECT DISTINCT Item_Id, FORMAT_TIMESTAMP('%Y-%m', Sell_Date) AS Sell_Date,
我收到此錯誤:
錯誤:SELECT 列表表達式引用的列 Item_Id 既不分組也不聚合
$$ 2:12 $$
如果我將其替換為
GROUP BY
:GROUP BY Sell_Date, Item_Id
結果(片段):
Row Item_Id Sell_Date Total_Sold 1 992 2010-05 1 2 118 2010-05 1 3 855 2010-05 1 4 846 2010-05 1 5 989 2010-05 1 6 505 2010-05 1 7 997 2010-05 1 8 983 2010-05 1 9 122 2010-05 1 10 601 2010-05 1 11 845 2010-05 1
我怎樣才能得到
DISTINCT
項目然後計算每個月的總數?
count (distinct item_id)
SELECT FORMAT_TIMESTAMP('%Y-%m', Sell_Date) AS Sell_Date, count(*) Total_Sold, count (distinct item_id) as distinct_item_id FROM `project.dataset.items` GROUP BY FORMAT_TIMESTAMP('%Y-%m', Sell_Date) AS Sell_Date ORDER BY Sell_Date