with t1 as(
select s1.student_id,name,score,subject,
row_number()over(partition by subject order by score desc)as rn
from students as s1
left join scores as s2 on s1.student_id=s2.student_id
where score is not null
)
select student_id,name,score,rn as rnk
from t1
where subject='物理'and rn<=10
order by rnk
with data1 as (
select distinct usr_id,date(login_time) as login_date
from user_login_log
where datediff(current_date,date(login_time))<=30
),
data2 as(
select t.usr_id as t_usr_id,t.login_date,t1.usr_id as t1_usr_id
from data1 as t
left join data1 as t1
on t.usr_id=t1.usr_id
and datediff(t.login_date,t1.login_date)=-1
)
select login_date,
concat(round(100*count( t1_usr_id)/count( t_usr_id),2),'%') as T1_retention_rate
from data2
group by login_date
order by login_date
with data1 as (
select distinct usr_id,date(login_time) as login_date
from user_login_log
where datediff(current_date,date(login_time))<=30
),
data2 as(
select t.usr_id as t_usr_id,t.login_date,t1.usr_id as t1_usr_id
from data1 as t
left join data1 as t1
on t.usr_id=t1.usr_id
and datediff(t.login_date,t1.login_date)=-1
)
select login_date,
concat(100*round(count(t1_usr_id)/count(t_usr_id),2),'%') as T1_retention_rate
from data2
group by login_date
order by login_date
select
a.login_date,
concat(round(100 * count(distinct b.usr_id) / count(distinct a.usr_id), 2), '%') as t1_retention_rate
from (
select distinct
date(login_time) as login_date,
usr_id
from user_login_log
where login_time >= date_sub(current_date, interval 30 day)
) as a
left join user_login_log as b
on a.usr_id = b.usr_id
and datediff(date(b.login_time), a.login_date) = 1
and b.login_time >= date_sub(current_date, interval 30 day)
group by a.login_date
order by a.login_date;
with data1 as (
select usr_id,date(login_time) as login_date
from user_login_log
where datediff(current_date,date(login_time))<=30
),
data2 as(
select t.usr_id as t_usr_id,t.login_date,t1.usr_id as t1_usr_id
from data1 as t
left join data1 as t1
on t.usr_id=t1.usr_id
and datediff(t.login_date,t1.login_date)=-1
)
select login_date,
concat(100*round(count(t1_usr_id)/count(t_usr_id),2),'%') as T1_retention_rate
from data2
group by login_date
order by login_date
with data1 as (
select usr_id,date(login_time) as login_date
from user_login_log
where datediff(current_date,date(login_time))<=30
),
data2 as(
select t.usr_id,t.login_date,t1.usr_id as t1_usr_id
from data1 as t
join data1 as t1
on t.usr_id=t1.usr_id
and datediff(t.login_date,t1.login_date)=-1
)
select login_date,
concat(100*round(count(t1_usr_id)/count(usr_id),2),'%') as T1_retention_rate
from data2
group by login_date
order by login_date
select
login_date,
concat(round(100 * count(distinct usr_id_1) / count(distinct usr_id), 2), '%') as t1_retention_rate
from (
select
a.login_date,
a.usr_id as usr_id,
b.usr_id as usr_id_1
from (
select distinct
date(login_time) as login_date,
usr_id
from user_login_log
where login_time >= date_sub(current_date, interval 30 day)
) as a
left join (
select distinct
date(login_time) as login_date,
usr_id
from user_login_log
where login_time >= date_sub(current_date, interval 30 day)
) as b on a.usr_id = b.usr_id and datediff(b.login_date, a.login_date) = 1
) as t
group by login_date
order by login_date;
select goods_id as oods_id,
sum(order_gmv) as total_gmv
from order_info
where date(order_time)='2024-09-10'
group by goods_id
order by total_gmv desc
limit 10
select a.mch_nm as asshole_tried,a.trx_cnt, b.mch_nm as darling_tried from
(select mch_nm, count(1) trx_cnt
from cmb_usr_trx_rcd
where year(trx_time) in (2023,2024) and usr_id='5201314520'
group by mch_nm
having count(1) >=20)a
left join
(select distinct mch_nm
from cmb_usr_trx_rcd
where year(trx_time) in (2023,2024) and usr_id='5211314521')b
on a.mch_nm = b.mch_nm order by 2 desc
select a.* from (
select
mch_nm as asshole_tried,
count(trx_time) as trx_cnt
from cmb_usr_trx_rcd
where year(trx_time) between 2023 and 2024
and usr_id=5201314520
group by mch_nm
having count(trx_time)>=20
) as a
left join (
select
distinct mch_nm as darling_tried
from cmb_usr_trx_rcd
where year(trx_time) between 2023 and 2024
and usr_id=5211314521
)as b
on a.asshole_tried=b.darling_tried
order by trx_cnt desc
select a.* from
(select distinct mch_nm
from cmb_usr_trx_rcd
where year(trx_time)=2024 and usr_id='5211314521')a
inner join
(select distinct mch_nm
from cmb_usr_trx_rcd
where year(trx_time)=2024 and usr_id='5201314520')b
on a.mch_nm = b.mch_nm
order by 1 desc
select * from cmb_usr_trx_rcd
where year(trx_time)='2024'
and usr_id=5201314520
and trx_amt=(
select max(trx_amt) from cmb_usr_trx_rcd
where year(trx_time)='2024'
and usr_id=5201314520
)
select
case whenmch_nm like '%按摩保健休闲%' then '按摩保健休闲'
when lower(mch_nm) rlike '.*(按摩|保健|休闲|spa|养生|会所).*' then '按摩、保健、休闲、养生、SPA、会所'
end as reg_rules,
count(distinct mch_nm) as mch_cnt
from
cmb_usr_trx_rcd
where mch_nm like '%按摩保健休闲%'
or lower(mch_nm) rlike '.*(按摩|保健|休闲|spa|养生|会所).*'
group by reg_rules
order by mch_cnt desc;
select
case when trx_amt=288 then '1.WithHand'
when trx_amt=388 then '2.WithMimi'
when trx_amt=588 then '3.BlowJobbie'
when trx_amt=888 then '4.Doi'
when trx_amt=1288 then '5.DoubleFly'
else '6.other'
end as ser_typ
,count(1) as trx_cnt
,min(date(trx_time)) as first_date
from
cmb_usr_trx_rcd
where usr_id='5201314520' and mch_nm='红玫瑰按摩保健休闲'
group by ser_typ
order by ser_typ
select
usr_id,
mch_nm,
sum(trx_amt) as trx_amt,
count(1) as trx_cnt,
min(trx_time) as first_time
from cmb_usr_trx_rcd
where trx_amt>=288 and usr_id=5201314520
group by mch_nm
order by trx_amt desc
select
trx_amt,
count(1) as total_trx_cnt,
count(distinct usr_id) as unique_usr_cnt,
count(1)/count(distinct usr_id) as avg_trx_per_user
from cmb_usr_trx_rcd
where
date(trx_time) between '2023-01-01' and '2024-06-30'
and mch_nm='红玫瑰按摩保健休闲'
group by trx_amt
order by avg_trx_per_user desc
limit 5;
select
trx_amt,
count(1) as trx_cnt
from
cmb_usr_trx_rcd
where
mch_nm = '红玫瑰按摩保健休闲'
and date(trx_time) between '2024-01-01'and '2024-07-31'
group by
trx_amt
order by
trx_cnt desc
limit 5;
select
date(trx_time) as trx_date,
round(max(trx_amt),2) as max_trx_amt,
round(min(trx_amt),2) as min_trx_amt,
round(avg(trx_amt),6) as avg_trx_amt,
round(sum(trx_amt),2) as total_trx_amt
from cmb_usr_trx_rcd
wheredate(trx_time) between '2024-09-01' and '2024-09-30'
and mch_nm = '红玫瑰按摩保健休闲'
group by date(trx_time)
order by trx_date