SQL实操题目记录(1)
原始数据表名:
FILL_TIME | 充值时间 |
---|---|
ACCOUNT_ID | 账号ID |
CARD_TYPE | 充值卡面值类型 |
FILL_TYPE | 充值类型 |
CARD_AMOUNT | 充值卡个数 |
【SQL题目】请按照以下要求写出SQL代码
1、获得每日充值的账号数,及充值金额,要求对账号排重。
代码:
SELECT DATE(FILL_TIME),COUNT(DISTINCT ACCOUNT_ID,FILL_TIME)AS quantity,
SUM(CARD_TYPE*CARD_AMOUNT) AS amount
FROM text_1
GROUP BY DAY(FILL_TIME);
查询结果(部分):
2、获得每日各充值类型的总充值金额
代码:
SELECT DATE(fill_time),CARD_TYPE,SUM(CARD_TYPE*CARD_AMOUNT) AS AMOUNT
FROM text_1
GROUP BY DAY(fill_time),CARD_TYPE;
查询结果(部分):
3.获取用户多次充值时间平均间隔天数(用户充值时间间隔分布)
select distinct account_id,(max(day(fill_time))-min(day(fill_time)))/(count(account_id)-1) as t
from text_1
group by account_id
having count(account_id)>1
order by t
查询结果:(部分)