Mysql 如何利用join制作简单的报表
我有一个名为“PizzaData”的简单表,其中包含以下列:Mysql 如何利用join制作简单的报表,mysql,sql,join,Mysql,Sql,Join,我有一个名为“PizzaData”的简单表,其中包含以下列: cust\u id整数不为空 bill\u日期整数不为空 pizza\u金额整数不为空 bill\u date(为了简化操作)是自交易完成以来经过的天数 我想做的是以下报告: 基本上,我熟悉和关键字,但我刚刚意识到MySQL不支持它。因此,我需要以某种方式生成一个临时列,并将其与PizzaData表连接起来 如何使用MySQL实现这一点?我认为使用case非常简单: select case when bill_date <= 2
cust\u id整数不为空
bill\u日期整数不为空
pizza\u金额整数不为空
bill\u date
(为了简化操作)是自交易完成以来经过的天数
我想做的是以下报告:
基本上,我熟悉和关键字,但我刚刚意识到MySQL不支持它。因此,我需要以某种方式生成一个临时列,并将其与PizzaData
表连接起来
如何使用MySQL实现这一点?我认为使用case
非常简单:
select case when bill_date <= 29 then '0-29'
when bill_date between 30 and 59 then '30-59'
else '60+' end `interval`,
sum(pizza_amt) `total_pizza_amt`
from PizzaData
group by case when bill_date <= 29 then '0-29'
when bill_date between 30 and 59 then '30-59'
else '60+' end;
选择账单日期时的大小写我认为使用大小写很容易:
select case when bill_date <= 29 then '0-29'
when bill_date between 30 and 59 then '30-59'
else '60+' end `interval`,
sum(pizza_amt) `total_pizza_amt`
from PizzaData
group by case when bill_date <= 29 then '0-29'
when bill_date between 30 and 59 then '30-59'
else '60+' end;
选择账单日期时的案例我将这样写:
select (case when bill_date < 30 then '0-29'
when bill_date < 60 then '30-59'
else '60+'
end) as bill_range,
sum(pizza_amt) as total_pizza_amt
from PizzaData
group by bill_range
order by min(bill_date);
选择(账单日期<30时的情况,然后选择“0-29”
当账单日期<60时,则为“30-59”
其他“60+”
结束)作为bill_范围,
总额(比萨饼金额)作为比萨饼总金额
来自PizzaData
按票据范围分组
最小订单(账单日期);
注:
case
表达式保证按顺序计算条件,因此不需要在
之间使用
MySQL允许您在GROUPBY
子句中使用列别名(并非所有数据库都这样做)
interval
是MySQL关键字和保留字。该列有更好的名称
排序依据
保证结果的顺序是“逻辑”的
我将这样写:
select (case when bill_date < 30 then '0-29'
when bill_date < 60 then '30-59'
else '60+'
end) as bill_range,
sum(pizza_amt) as total_pizza_amt
from PizzaData
group by bill_range
order by min(bill_date);
选择(账单日期<30时的情况,然后选择“0-29”
当账单日期<60时,则为“30-59”
其他“60+”
结束)作为bill_范围,
总额(比萨饼金额)作为比萨饼总金额
来自PizzaData
按票据范围分组
最小订单(账单日期);
注:
case
表达式保证按顺序计算条件,因此不需要在
之间使用
MySQL允许您在GROUPBY
子句中使用列别名(并非所有数据库都这样做)
interval
是MySQL关键字和保留字。该列有更好的名称
排序依据
保证结果的顺序是“逻辑”的
如何保存过去的天数?它会每天改变吗?你会每天更新吗?你如何保存过去的天数?它会每天改变吗?你能每天更新吗?非常感谢你,迈克!非常感谢你,迈克尔!