query一起获取一组值在sql列中出现的次数

7lrncoxx  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(450)

只是在为这个问题挣扎。
编写一个查询,选择有关已按订单订购的边的以下详细信息:
•侧id号和侧名称。
•订购了多少订单(无论数量)。
我已经创建了一个视图,这是它的表(ordered\u sides\u details是视图的名称)
查看表格
我已经编写了这个查询,但我相信它只是计算行的数量,而不是每边的排序次数。

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

这是结果表
显然它是不正确的,因为1.25升的焦炭只有一个订单。
任何解决这个问题的帮助都会很棒。谢谢。

iklwldmw

iklwldmw1#

解决方案

你创建的视图一定有问题。
这应该足以产生适当的结果:

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

boostrapping(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);

相关问题