[英]How to count distinct values in a list
我在Snowflake中編寫查詢並且遇到了打嗝很新。 我試圖計算一個項目出現在同一列的列表中的次數。
我能夠使用flatten函數,然后嘗試添加計數功能,沒有運氣。
這是我的數據的虛擬版本:
Ticket# Tasks
1 ["cut apple","peel orange","slice cheese"]
2 ["slice cheese","peel orange"]
3 ["cut apple"]
4 ["cut apple","slice cheese"]
5 ["cut apple", "chop kiwi"]
這就是我想要輸出的樣子:(希望以desc順序自動填充不同的任務列表)
Tasks Quantity
Cut Apple 4
Slice Cheese 3
Peel Orange 2
Chop Kiwi 1
評論太長了,但指導你去研究,然后嘗試編寫一個示例查詢。 雖然您有機會在學習的同時這樣做,但我會研究數據規范化並調整“任務”列。
您應該有一個輔助查找表,其中包含主鍵ID和每個唯一任務的描述(您將在數據規范化中看到)。 因此,您可以從數據上下文到文檔,我將提供布局示例,並了解它如何幫助您。
從查找任務表開始......
Tasks Table
TaskID TaskDescription
1 cut apple
2 peel orange
3 slice cheese
4 chop kiwi
然后,您將擁有另一個具有TicketID的表,第三個表顯示每個TicketID的多個記錄。
Ticket Table
TicketID ExPurchaseDate
1 someDate
2 sameDate
3 etc...
現在,每張票的詳細信息表。
TicketTasks Table
TicketTaskID TicketID TaskID
1 1 1
2 1 2
3 1 3
4 2 3
5 2 2
6 3 1
7 4 1
7 4 3
8 5 1
9 5 4
嘗試使用規范化消化這一些,然后研究用COUNT(*)和GROUP BY編寫SQL查詢。 非常樂意為您提供更多幫助,但希望此HELP可以為您提供指導。
步驟1:定義規范化數據模式並將模式放入數據庫。
您的規范化數據模式可能如下所示:
第2步:添加您的數據
第3步:然后,您將能夠使用帶有DISTINCT的SQL COUNT來查找數據表中的唯一行
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.