【发布时间】:2019-08-29 08:34:43
【问题描述】:
尝试以只读方式解决问题。
我的表格(答案)如下所示:
| user_id | value |
+----------------+-------------+
| 6 | pizza |
| 6 | tosti |
| 9 | fries |
| 9 | tosti |
| 10 | pizza |
| 10 | tosti |
| 12 | pizza |
| 12 | tosti |
| 13 | sushi | -> did not finish the quiz.
注意:实际的表有 15+ 个不同的可能值。 (问题的答案)。
我已经能够创建下表:
| value arr | count | user_id |
+----------------+--------------+-----------+
| pizza, tosti | 2 | 6 |
| fries, tosti | 2 | 9 |
| pizza, tosti | 2 | 10 |*
| pizza, tosti | 2 | 12 |*
| sushi | 1 | 13 |
我不确定 * 行是否显示在我当前的查询中(DB 有 30k 行和 15+ 个值选项)。这里的问题是“计数”是计算答案的数量,而不是唯一结果的数量。
当前查询看起来有点像:
select string_agg(DISTINCT value, ',' order by value) AS value, user_id,
COUNT(DISTINCT value)
FROM answers
GROUP BY user_id;
寻找如下表所示的唯一答案组合:
| value arr | count unique |
+----------------+--------------+
| pizza, tosti | 3 |
| fries, tosti | 1 |
| sushi | 1 | --> Hidden in perfect situation.
尝试了一堆由工具编写和生成的查询。从超级简化到相当复杂,我一直在计算答案,而不是针对用户的独特组合。
如果这是一个重复的问题,请重新引导我。这几天学到了很多,但还没有找到答案。
任何帮助将不胜感激。
【问题讨论】:
标签: sql database postgresql