我有一列包含物种列表的字符串:
+----------------------------------------+
| species |
+----------------------------------------+
| Dinosauria, Ornitischia, indeterminado |
| Sirenia |
| Dinosauria, Therophoda |
| Dinosauria, Therophoda, Allosaurus |
| and so on... |
+----------------------------------------+
我正在寻找一种在 PostgreSQL 12 中列出和计算所有唯一名称的方法,例如:
+---------------+-------+
| species | count |
+---------------+-------+
| Dinossauria | 3 |
| Ornitischia | 1 |
| indeterminado | 1 |
| Sirenia | 1 |
| Theropoda | 2 |
| Allosaurus | 1 |
+-----------------------+
您可以使用该值将逗号分隔列表拆分为行
regexp_split_to_table()
并按该值分组:我使用正则表达式作为分隔符来消除逗号后的空格。以上也可以使用,
unnest(string_to_array(t.species, ','))
但是您需要使用trim()
这些值来消除空格。在线示例