我有一個欄位可以在一個陣列中保存多達 15 個不同的值。可以為這些值存盤大約 90 個不同的值。
我希望獲得的最終輸出是每個值的一行,其中一列是值的名稱和該陣列中該值的計數。
這是一個粗略的例子:
| 顏色組合(陣列) |
| [紅],[藍],[黃] |
| [藍色],[綠色],[紫色] |
| [黃色],[藍色] |
所以我的目標是最終得到這樣的輸出:
| 顏色| 找到的次數|
| 黃色 | 2 |
| 藍色 | 2 |
| 紅色 | 1 |
| 綠色 | 1 |
| 紫色 | 1 |
任何見解都會非常有幫助(對 SQL 中的陣列不太熟悉),我首先創建一個 case 陳述句來查看它是否包含該變數,然后如果找到它,則為每個變數創建列 1,但這并不適用當我需要訂購找到的次數時,我非常好,因為我最終得到了 90 列和 1 行的總次數。
uj5u.com熱心網友回復:
您可以使用unnest擴展陣列列:
-- sample data
WITH dataset (colors) AS (
VALUES (array [ 'Red', 'Blue', 'Yellow' ]),
(array [ 'Yellow', 'Orange' ]),
(array [ 'Green' ])
)
--query
select color, count(*) times
from dataset
cross join unnest (colors) t(color)
group by color
order by 2 desc -- to prettify output
輸出:
| 顏色 | 次 |
|---|---|
| 黃色的 | 2 |
| 紅色的 | 1 |
| 藍色 | 1 |
| 橘子 | 1 |
| 綠 | 1 |
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/406874.html
標籤:
