跳到主要内容

sql

select distinct
column1,
column2
from
some_table;


SELECT
name,
CASE
WHEN (age > 60) THEN '老同学'
WHEN (age > 20) THEN '年轻'
ELSE '小同学'
END AS age_level
FROM
student

# 统计学生表中的班级编号(class_id)和每个班级的平均成绩(avg_score)
SELECT
class_id,
AVG(score) AS avg_score
FROM
student
GROUP BY
class_id;


# 统计学生表中班级的总成绩超过 150 分的班级编号(class_id)和总成绩(total_score)
SELECT
class_id,
SUM(score) AS total_score
FROM
student
GROUP BY
class_id
HAVING
SUM(score) > 150;


select
s.name student_name,
s.age student_age,
s.class_id class_id,
c.name class_name,
c.level class_level
from
student s
join class c on s.class_id = c.id;


# 根据字段name 选择重复数据
WITH ranked_scores AS (
SELECT
name,
score,
ROW_NUMBER() OVER (PARTITION BY name ) AS rn
FROM public.score
)
SELECT
name,
score
FROM ranked_scores
WHERE rn = 1;