【发布时间】:2022-01-10 11:04:14
【问题描述】:
我有问题。如果没有roll up,我如何编写这个sql 语句? 我想得到相同的结果,但没有汇总。结果应如下图所示。
我的查询
select state, city, sum((sales.retail_price - products.wholesale_price) *
sales.quantity) as profit
from products, sales
where sales.product_id = products.product_id
group by state, city WITH ROLLUP
order by state is null, city is null, state, city ;
我的架构
-- Create some tables and insert some rows.
create table products (product_id integer, wholesale_price real);
insert into products (product_id, wholesale_price) values
(1, 1.00),
(2, 2.00);
create table sales (product_id integer, retail_price real,
quantity integer, city varchar, state varchar);
insert into sales (product_id, retail_price, quantity, city, state) values
(1, 2.00, 1, 'SF', 'CA'),
(1, 2.00, 2, 'SJ', 'CA'),
(2, 5.00, 4, 'SF', 'CA'),
(2, 5.00, 8, 'SJ', 'CA'),
(2, 5.00, 16, 'Miami', 'FL'),
(2, 5.00, 32, 'Orlando', 'FL'),
(2, 5.00, 64, 'SJ', 'PR');
【问题讨论】:
-
我想得到相同的结果,但没有汇总。是什么原因? PS。创建 3 个单独的查询,每个查询都有自己的分组,然后是 UNION ALL。
标签: mysql sql group-by union union-all