Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用GROUP BY-Query获得一组值在SQL列中出现的次数_Sql_Group By_Count - Fatal编程技术网

使用GROUP BY-Query获得一组值在SQL列中出现的次数

使用GROUP BY-Query获得一组值在SQL列中出现的次数,sql,group-by,count,Sql,Group By,Count,只是在为这个问题挣扎 编写一个查询,选择已按订单订购的侧面的以下详细信息: •侧ID号和侧名称 •该方已订购多少订单(无论数量) 我已经创建了一个视图,这是它的表(ordered_sides_details是视图的名称) 我已经编写了这个查询,但我相信它只是计算行数,而不是计算每边的排序次数 SELECT ordered_sides_details.side_name, COUNT(*) FROM ordered_sides_details GROUP BY ordered_sides_d

只是在为这个问题挣扎

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

•侧ID号和侧名称

•该方已订购多少订单(无论数量)

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

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

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

显然它是不正确的,因为1.25L焦炭只在一个订单中

解决这个问题的任何帮助都将是了不起的。谢谢。

解决方案 您创建的视图一定有问题

这应足以产生适当的结果:

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);
解决方案 您创建的视图一定有问题

这应足以产生适当的结果:

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

这是一个视图:创建查看已订购的\u面\u详细信息,作为选择订单id、已订购的\u面.side\u id、面\u名称、已订购的\u数量、(面\u价格*已订购的\u数量)作为已订购的\u面上的已订购的\u面内部连接面的总成本。面\u id=面.side\u id;GO刚刚删除并重新执行了视图,现在它工作了:P不确定发生了什么,但感谢您的帮助!没问题,小心!这是一个视图:创建查看已订购的\u面\u详细信息,作为选择订单id、已订购的\u面.side\u id、面\u名称、已订购的\u数量、(面\u价格*已订购的\u数量)作为已订购的\u面上的已订购的\u面内部连接面的总成本。面\u id=面.side\u id;GO刚刚删除并重新执行了视图,现在它工作了:P不确定发生了什么,但感谢您的帮助!没问题,小心!