使用GROUP BY-Query获得一组值在SQL列中出现的次数
只是在为这个问题挣扎 编写一个查询,选择已按订单订购的侧面的以下详细信息: •侧ID号和侧名称 •该方已订购多少订单(无论数量) 我已经创建了一个视图,这是它的表(ordered_sides_details是视图的名称) 我已经编写了这个查询,但我相信它只是计算行数,而不是计算每边的排序次数使用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
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不确定发生了什么,但感谢您的帮助!没问题,小心!