1,
L'ordre de mise en œuvre réel de la déclaration suivante① SELECT [DISTINCT] ② FROM③ WHERE④ GROUP BY⑤ HAVING⑥ UNION⑦ ORDER BY
L'ordre de mise en œuvre réel de la phrase La commande suivante
① SELECT [DISTINCT] ② FROM③ WHERE④ GROUP BY⑤ HAVING⑥ UNION⑦ ORDER BY
Mise en œuvre des commandes de déclaration SQL:
À partir de → Où → → Groupes par → Oui → Sélectionnez → Définir → Alliance → Ordre
SELECT * from studentwhere name in (select name from student where name like "张%" group by name having avg(score) > 75);
--(1)如果不考虑少录入情况(比如张三只有2个课程,王五有3个课程)SELECT nameFROM xueshengGROUP BY nameHAVING MIN(score) > 80--(2)如果考虑学生的课程数大于等于3的情况SELECT nameFROM xueshengGROUP BY nameHAVING MIN(score) > 80AND COUNT(kecheng) >= 3
.
SELECT user_id ,sum(pay_amount) pay_amountFROM user_tradeWHERE year(dt)=2019GROUP BY user_id
SELECT a.user_name, b.city, b.sex, a.pay_amount, row_number() over(partition by b.city,b.sex order by a.pay_amount desc) rankFROM(SELECT user_id ,sum(pay_amount) pay_amount FROM user_order WHERE year(dt)=2019 GROUP BY user_id)aLEFT JOIN user_info b on a.user_id = b.user_idStep3:最后通过嵌套一个子查询,使用where子句作为筛选条件,筛选出Top10的用户即可;-- 4.每个城市、不同性别,2019年支付金额最高的TOP10用户 --SELECT c.user_name, c.city, c.sex, c.pay_amount, c.rankFROM(SELECT a.user_name, b.city, b.sex, a.pay_amount, row_number() over(partition by b.city,b.sex order by a.pay_amount desc) rank FROM (SELECT user_id ,sum(pay_amount) pay_amount FROM user_order WHERE year(dt)=2019 GROUP BY user_id)a LEFT JOIN user_info b on a.user_id = b.user_id)cWHERE c.rank<=10;