【问题标题】:COUNT() with GROUP BY - Query to get number of times a set of values appear in a column SQL带有 GROUP BY 的 COUNT() - 查询一组值在列中出现的次数 SQL
【发布时间】:2020-06-04 19:10:47
【问题描述】:

只是在为这个问题而苦苦挣扎。

编写一个查询,选择有关已按订单订购的边的以下详细信息:

• 侧 ID 号和侧名称。

• 该方已订购了多少订单(无论数量如何)。

我已经创建了一个视图,这是它的表(ordered_sides_details 是视图的名称)

View Table

我已经写了这个查询,但我相信它只是计算行数,而不是每边的排序次数。

SELECT ordered_sides_details.side_name, COUNT(*) 
FROM ordered_sides_details 
GROUP BY ordered_sides_details.side_name;

This is the resulting table

显然它不正确,因为 1.25L 可乐只有 1 个订单。

解决这个问题的任何帮助都会很棒。谢谢。

【问题讨论】:

    标签: sql group-by count


    【解决方案1】:

    解决方案

    您创建的视图一定有问题。

    这应该足以产生正确的结果:

    SELECT
         side_id
        ,side_name
        ,COUNT(*) AS total_count
    FROM dbo.orders
    GROUP BY side_id, side_name
    

    提升(SQL Server)

    用于引导示例的脚本:

    IF NOT EXISTS (SELECT 1 FROM sys.tables t WHERE t.object_id = OBJECT_ID('dbo.orders'))
    BEGIN
        CREATE TABLE orders
        (
            order_id INT,
            side_id INT NOT NULL,
            side_name NVARCHAR(100) NOT NULL,
            ordered_quantity INT NOT NULL,
            total_cost MONEY NOT NULL
        );
    END;
    
    INSERT INTO orders (order_id, side_id, side_name, ordered_quantity, total_cost)
    VALUES 
    (10, 1, '390ml Coke', 1, 3.00),
    (5, 2, '1.25l Coke', 2, 10.00),
    (8, 3, 'Lava Cake', 3, 8.85),
    (7, 4, 'Chicken Wings', 4, 14.00),
    (6, 5, 'Garlic Bread', 4, 7.80),
    (5, 6, 'Healthy Kale Chips', 3, 16.50),
    (5, 6, 'Healthy Kale Chips', 2, 11.00),
    (4, 5, 'Garlic Bread', 1, 1.95),
    (3, 4, 'Chicken Wings', 1, 3.50),
    (2, 3, 'Lava Cake', 2, 5.90);
    

    【讨论】:

    • 这是视图: CREATE VIEW ordered_sides_details AS SELECT order_id, ordered_side.side_id, side_name, ordered_quantity, (side_price*ordered_quantity) AS total_cost FROM ordered_side INNER JOIN side ON ordered_side.side_id = side.side_id;去
    • 刚刚删除并重新执行了视图,现在它可以工作了:P 不知道发生了什么,但感谢您的帮助!
    • 没问题,保重!
    猜你喜欢
    • 2014-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-12
    • 1970-01-01
    • 2018-10-26
    相关资源
    最近更新 更多