【问题标题】:Creating a new table with a column for count of values for another column创建一个新表,其中有一列用于计算另一列的值
【发布时间】:2018-08-13 17:58:14
【问题描述】:

我有一个 aisle_list 表,其中包含 order_id 和 aisle_id 列。
下面是一个例子:

order_id aisle_id
1        21
1        24
1        83
1        95
1        108
1        120
36       0 
36       2

我想创建一个新表,其中有一列列出了每个 order_id 的唯一 aisle_ids 计数的计数,其中计数为 4、5 或 6。所以我需要一个带有一个 group by 的嵌套选择。

CREATE TABLE sample_path AS
SELECT a.order_id, a.aisle_id, x.count_num_aisles
FROM aisle_list as a, 
(SELECT count(*) as count_num_aisles FROM aisle_list
GROUP BY order_id) as x
WHERE count_num_aisles IN (4, 5, 6);

想要的结果:

order_id aisle_id count_num_aisles
1        21       6
1        24       6
1        83       6
1        95       6
1        108      6
1        120      6

查询需要永远运行。有人可以提供解决方案吗?

【问题讨论】:

    标签: sql group-by count nested where-in


    【解决方案1】:

    为什么不直接使用group byhaving

    SELECT a.order_id, count(distinct aisle_id) as num_aisles
    FROM aisle_list a
    GROUP BY a.order_id
    HAVING count(distinct aisle_id) BETWEEN 4 and 6;
    

    【讨论】:

    • 一个更简单的解决方案!我刚开始使用 SQL,所以我还在学习。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-08
    • 2022-11-28
    • 1970-01-01
    • 2013-05-04
    • 1970-01-01
    • 2021-12-26
    • 1970-01-01
    相关资源
    最近更新 更多