【发布时间】:2018-03-23 11:49:36
【问题描述】:
这是一个例子。假设我有下表:
id | list
--------+----------
10 |
| 10,20
20 | 10,20
对于每个 id 值,我想计算包含 id 值的 list 值的行数。结果应该是这样的:
id | count of lists
--------+----------
10 | 2
| 0
20 | 2
我建议应该使用窗口函数,但我似乎无法从这样的函数中访问id 值。
我完全同意这是糟糕的设计。这个问题是关于可能性的。
任何 MySQL/PostgreSQL 解决方案都可以。
【问题讨论】:
-
不知道你想问什么。 ID 10 有一个空白,但空白有 0 个计数?空白 ID 也有点奇怪。它们是列表中值的上限吗?这里的设计很糟糕
-
这看起来真的很糟糕的表格设计...对于两列...为什么您要查找的值作为包含列表值的表格中的单独列?为什么要在数据库中存储逗号分隔的值?想想如果您在列表中有
100并且您正在寻找10会发生什么。这将需要一个过于复杂的解决方案来解决如果设计经过深思熟虑就可以轻松完成的事情。 -
Mysql 还是 postgres??
-
请正确标记。 mysql还是postgres?不能两者兼而有之。
-
在我看来,您想从逗号分隔列表中计算出数字吗?
标签: mysql sql postgresql