我想計算多行字串陣列中每個唯一標記的總出現次數,并將其全部作為 PostgreSQL 查詢的一部分。
我正在使用 Prisma,但我懷疑如果可能的話,我必須通過$queryRaw.
在 my 中schema.prisma,allTags設定為字串陣列:
allTags String[]
然后它變成_text了資料庫模式中的 a ,下劃線似乎意味著它是一個陣列:
"allTags" _text,
所以假設資料是這樣的:
allTags
------------------------------
{JavaScript, Vue.js}
{JavaScript, Node}
{TypeScript, JavaScript, Node}
...輸出應如下所示:
count tag
------------------
3 | JavaScript
2 | Node
1 | Vue.js
1 | TypeScript
我的預感是我可能需要以某種方式在此處使用子查詢(我已經看到提到LATERAL),但我無法將其拼湊在一起。
uj5u.com熱心網友回復:
也許橫向連接到陣列的取消嵌套。
select count(*) as "count", tag
from your_table t
cross join lateral unnest(allTags) as tags(tag)
group by tag
order by 1 desc;
| 數數 | 標簽 |
|---|---|
| 3 | JavaScript |
| 2 | 節點 |
| 1 | Vue.js |
| 1 | 打字稿 |
關于db<>fiddle 的演示在這里
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/394744.html
標籤:sql 数据库 PostgreSQL的 棱镜
上一篇:sqlite3中的錯誤數學
