select
trx_amt,
count(1) as trx_cnt
from
cmb_usr_trx_rcd
where
mch_nm = '红玫瑰按摩保健休闲'
and year(trx_time) = 2024
and month(trx_time) in (1, 2, 3, 4, 5, 6, 7)
group by
trx_amt
order by
trx_cnt desc
limit 5;
select
date(trx_time) as trx_date,
max(trx_amt) as max_trx_amt,
min(trx_amt) as min_trx_amt,
avg(trx_amt) as avg_trx_amt,
sum(trx_amt) as total_trx_amt
from
cmb_usr_trx_rcd
where
mch_nm = '红玫瑰按摩保健休闲'
and date(trx_time) between '2024-09-01' and '2024-09-30'
group by
date(trx_time)
order by
trx_date;
select
mch_nm,
sum(trx_amt) as sum_trx_amt
from
cmb_usr_trx_rcd
where
year(trx_time) = 2024
and usr_id = '5201314520'
group by
mch_nm
order by
sum_trx_amt desc
select
*
from
cmb_usr_trx_rcd
where
date(trx_time)
between '2024-09-01' and '2024-09-30'
and (
(hour(trx_time) >= 22)
or
(hour(trx_time) between 0 and 5)
)
and usr_id = '5201314520'
order by trx_time
select
*
from
cmb_usr_trx_rcd
where
date(trx_time)
between '2024-09-01' and '2024-09-30'
and hour(trx_time) between 1 and 5
and usr_id = '5201314520'
order by trx_time
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,
T.login_date as T_date,
T_1.login_date as T_1_date
from
data1 as T
left join
data1 as T_1
on
T.usr_id = T_1.usr_id
and datediff(T.login_date, T_1.login_date) = -1
)
select
T_date as first_login_date,
concat(round(avg(T_1_date is not null)*100, 2), '%') as T1_retention_rate
from
data2
group by
T_date
order by
T_date;
select
*
from
scores
where
(
(subject = '历史' and score >= 90)
or (subject = '地理' and score >= 90)
or (subject = '政治' and score >= 90)
)
and exam_date='2024-06-30'
order by score desc ,student_id,subject
SELECT
CASE
WHEN sc.score >= 110 THEN '[110, 120]'
WHEN sc.score >= 90 THEN '[90, 110)'
WHEN sc.score >= 60 THEN '[60, 90)'
ELSE '[0, 60)'
END AS score_range,
COUNT(*) AS num_students
FROM
students s
JOIN
scores sc ON s.student_id = sc.student_id
WHERE
sc.subject = '数学'
AND sc.exam_date = '2024-06-30'
GROUP BY
score_range
ORDER BY
score_range DESC;
WITH ranked_scores AS (
SELECT
s.student_id,
s.name,
sc.score,
rank() OVER (PARTITION BY s.grade_code ORDER BY sc.score DESC) AS rnk
FROM
students s
JOIN
scores sc ON s.student_id = sc.student_id
WHERE
s.grade_code = 'S1'
AND sc.subject = '物理'
)
SELECT
student_id,
name,
score,
rnk
FROM
ranked_scores
WHERE
rnk <= 10
ORDER BY
rnk,student_id
WITH ranked_scores AS (
SELECT
s.student_id,
s.name,
sc.score,
ROW_NUMBER() OVER (PARTITION BY s.grade_code ORDER BY sc.score DESC) AS rnk
FROM
students s
JOIN
scores sc ON s.student_id = sc.student_id
WHERE
s.grade_code = 'S1'
AND sc.subject = '物理'
)
SELECT
student_id,
name,
score,
rnk
FROM
ranked_scores
WHERE
rnk <= 10
ORDER BY
rnk,student_id
with a as
(select s1.student_id, s1.name, s2.score,
row_number()over(order by s2.score desc) as r
from students s1 join scores s2
on s1.student_id = s2.student_id
where s2.subject='物理'
and s1.grade_code='S1')
select student_id, name,score,r
from a
where r <= 10
with a as
(select s1.student_id, s1.name, s2.score,
row_number()over(order by s2.score desc) as r
from students s1 join scores s2
on s1.student_id = s2.student_id
where s2.subject='物理'
and s1.grade_code='S1')
select student_id, name,score,r
from a
where r between 1 and 10
select s1.student_id, s1.name, s2.score,
row_number()over(order by s2.score desc) as r
from students s1 join scores s2
on s1.student_id = s2.student_id
where s2.subject='物理'
and s1.grade_code='S1'
limit 10