昨天的内容有点多,今天我们精简一些,但是该讲的重点一个不会少!
💡图一:
Having和where都有过滤的作用,不同点在于:
1️⃣where是约束语句,直接过滤数据库中的数据。having是过滤group by之后的结果。where和having不可替换位置🙅🏻
2️⃣where用在group by之前,而having则是在group by之后。能直接过滤数据库的数据最好在where里直接过滤,因为用having运算速度会慢很多,数据量大且计算复杂时尤为明显
🌰1: 因为有昨天提到的aggregate function里的count,而我们需要选出客户数量大于5的国家,结果是在aggregate和group by之后,所以这里只能用having
🌰2: 和⬆️个例子唯一的区别在于结尾加了一个order by的排序功能
💡图二:
case when相当于python的if,elif,else。翻译成白话就是如果……就……剩下的……结束
🌰1: 如果数量大于30时,显示“数量大于30”
数量等于30时,显示“数量是30”
其余的显示为“数量小于30”
结束 并命名这个新column为QuantityText
🌰2: case when不仅用在select后,也可以在order by后面
这个例子就是说:如果城市为空则按照国家的首字母来排序,剩下不为空的按城市A➡️Z排
⚠️如果select有case when且后面有group by,要把从case到end这部分复制到group by那里,否则会报错
最新评论 3
:多谢亲爱的暴风点❤️😘
:哈哈哈哈 不客气啦 照片拍的真心好看呢!
回复 @Lifeisgettingbetterandbetter:谢谢小可爱夸奖!