【发布时间】:2020-10-19 21:54:18
【问题描述】:
我有一个名为“用户”的表,其中包含详细信息或 user_id 和 product_item_code。
例如:
Select * from Users limit 5;
+----+---------+---------------------------+
| id | user_id | product_item_code |
+----+---------+---------------------------+
| 1 | 123 | {556,772,945} |
| 2 | 124 | {556,965,945,990} |
| 3 | 125 | {772, 435, 990, 556} |
| 4 | 126 | {556, 623, 842} |
| 5 | 127 | {842, 990, 556, 623, 745} |
+----+---------+---------------------------+
我要数一下这些product_item_code 556、990、623。重复了多少次。
我正在寻找一个查询来给我如下的输出
+-------------------+-------+
| product_item_code | count |
+-------------------+-------+
| 556 | 5 |
| 990 | 3 |
| 623 | 2 |
+-------------------+-------+
我已经尝试了以下代码,但无法获得预期的输出。
select count(1) from Users where ARRAY[556, 990, 623] @> ANY(product_item_code);
请告诉我如何获得上述输出。 提前致谢
【问题讨论】:
-
与你的问题无关,但
count(1)实际上比count(*)慢
标签: sql arrays postgresql select count