select
*
from subject_score
where (chinese >=110 and math >=110) or (chinese >=110 and english >=110) or(math >=110 and english >=110)
order by student_id asc;
SELECT student_id, chinese, math, english
FROM (
SELECT *,
(chinese >= 110) + (math >= 110) + (english >= 110) AS total
FROM subject_score
) AS t1
WHERE total >= 2;
SELECT student_id, chinese, math, english
FROM subject_score
HAVING (chinese >= 110) + (math >= 110) + (english >= 110) >= 2;
with monthly_base as (
select
SUBSTR(cu.trx_time, 1, 7) AS trx_mon,
cu.trx_amt
from cmb_usr_trx_rcd cu
join cmb_mch_typ cm on cu.mch_nm = cm.mch_nm
and cm.mch_typ = '休闲娱乐'
where cu.usr_id = 5201314520
and SUBSTR(cu.trx_time, 1, 4) in (2023,2024)
)
select
trx_mon,
LAST_DAY(CONCAT(trx_mon, '-01')) AS last_day,
DAY(LAST_DAY(CONCAT(trx_mon, '-01'))) AS days_of_mon,
sum(trx_amt) as trx_amt,
count(1) as trx_cnt,
sum(trx_amt) / DAY(LAST_DAY(CONCAT(trx_mon, '-01'))) as avg_day_amt,
count(1) / DAY(LAST_DAY(CONCAT(trx_mon, '-01'))) as avg_day_cnt
from monthly_base
group by trx_mon
order by trx_mon;
select
c.mch_typ
,u.mch_nm
,count(1) as trx_cnt
,sum(u.trx_amt) as trx_amt
from cmb_usr_trx_rcd u
left join cmb_mch_typ c on u.mch_nm = c.mch_nm
where u.usr_id = 5201314520 and year(u.trx_time) = 2024
and c.mch_typ is null
group by c.mch_typ,u.mch_nm
order by trx_cnt desc
select
c.mch_typ
,count(1) as trx_cnt
,sum(trx_amt) as trx_amt
from cmb_usr_trx_rcd u
left join cmb_mch_typ c on u.mch_nm = c.mch_nm
where u.usr_id = 5201314520 and year(u.trx_time) = 2024
group by 1
order by 2 desc
select
substr(trx_time,1,7) as trx_mon,
count(1) as trx_cnt,
sum(trx_amt) as trx_amt
from
cmb_usr_trx_rcd
where
usr_id = 5201314520 and
date(trx_time) > '2022-11-01' and date(trx_time) <= '2024-12-31'
and
((truncate(trx_amt,0) rlike "88$|98$" and trx_amt>200) and
hour(trx_time) in (0,23,1,2)
or
upper(mch_nm) rlike "足疗|保健|按摩|养生|SPA")
group by trx_mon
order by trx_mon
SELECT
DATE_FORMAT(trx_time, '%Y-%m') AS trx_mon
,count(1) as trx_cnt
,sum(trx_amt) as trx_amt
FROM cmb_usr_trx_rcd
WHERE
FLOOR(trx_amt) % 100 IN (88, 98)
AND trx_amt > 200
AND (TIME(trx_time) >= '23:00:00' OR TIME(trx_time) <= '03:00:00')
AND (
mch_nm LIKE '%足疗%'
OR mch_nm LIKE '%保健%'
OR mch_nm LIKE '%按摩%'
OR mch_nm LIKE '%养生%'
OR mch_nm LIKE '%SPA%'
)
group by 1
order by 1
select
case when floor(trx_amt) % 100 in (88, 98)
and trx_amt > 200
and (time(trx_time) >= '23:00:00' or time(trx_time) < '04:00:00')
then 'illegal'
else 'other' end as trx_typ
,count(1) as trx_cnt
,sum(trx_amt) as trx_amt
,count(distinct mch_nm) as mch_cnt
from cmb_usr_trx_rcd
where usr_id = 5201314520
group by trx_typ
order by trx_cnt desc
select
usr_id
,mch_nm
,trx_time
,trx_amt
from cmb_usr_trx_rcd
where trx_amt > (select
avg(trx_amt) as avg_amt
from cmb_usr_trx_rcd)
order by trx_amt desc
select
usr_id
,mch_nm
,trx_time
,trx_amt
,(select avg(trx_amt) from cmb_usr_trx_rcd) as avg_trx_amt
from cmb_usr_trx_rcd
where usr_id = 5201314520
order by trx_time desc
select
usr_id
,mch_nm
,trx_time
,trx_amt
,(select avg(trx_amt) from cmb_usr_trx_rcd) as avg_trx_amt
from cmb_usr_trx_rcd
where usr_id = 5201314520 and mch_nm = "红玫瑰按摩保健休闲"
order by trx_time desc
select distinct
usr_id,
sum(trx_amt) over (partition by usr_id) as total_amt,
avg(trx_amt) over () as platform_avg_amt
from cmb_usr_trx_rcd
order by total_amt desc
SELECT
usr_id,
SUM(trx_amt) AS total_amt,
(SELECT AVG(trx_amt) FROM cmb_usr_trx_rcd) AS platform_avg_amt
FROM cmb_usr_trx_rcd
GROUP BY usr_id
ORDER BY total_amt DESC;
with t1 as(
select
avg(trx_amt) as platform_avg_amt
from cmb_usr_trx_rcd)
select
usr_id
,sum(trx_amt) as total_amt
,platform_avg_amt
from cmb_usr_trx_rcd
cross join t1
group by usr_id, t1.platform_avg_amt
order by total_amt desc
with t1 as(
select
avg(trx_amt) as platform_avg_amt
from cmb_usr_trx_rcd)
select
usr_id
,sum(trx_amt) as total_amt
,platform_avg_amt
from cmb_usr_trx_rcd
cross join t1
group by usr_id, t1.platform_avg_amt
order by total_amt desc
limit 5
with t1 as(
select
avg(trx_amt) as avg_trx_amt
from cmb_usr_trx_rcd)
select
mch_nm
,sum(trx_amt) as total_trx_amt
,avg_trx_amt
from cmb_usr_trx_rcd
cross join t1
group by mch_nm, t1.avg_trx_amt
SELECT
s.singer_id,
s.singer_name,
a.album_id,
a.album_name,
COUNT(l.id) AS play_count
FROM
singer_info s
JOIN
album_info a ON s.singer_id = a.singer_id
LEFT JOIN
song_info sg ON a.album_id = sg.album_id
LEFT JOIN
listen_rcd l ON sg.song_id = l.song_id
GROUP BY
s.singer_id, s.singer_name, a.album_id, a.album_name
HAVING
play_count = 0;
select * from subject_score where (chinese >=110 and math >=110) or (chinese >=110 and english >=110) or(math >=110 and english >=110) order by student_id asc; SELECT student_id, chinese, math, english FROM ( SELECT *, (chinese >= 110) + (math >= 110) + (english >= 110) AS total FROM subject_score ) AS t1 WHERE total >= 2; SELECT student_id, chinese, math, english FROM subject_score HAVING (chinese >= 110) + (math >= 110) + (english >= 110) >= 2;