一道SQL面试例题 if...else 与聚集函数
来源:互联网 发布:java程序开发培训价格 编辑:程序博客网 时间:2024/05/19 01:32
http://www.cnblogs.com/xudong-bupt/p/4044454.html
晚上回来,同学说面试遇到了一个SQL面试题目,自己做了一下,总结总结。
题目如下:
下面是产品数据表(产品id,颜色col,数量num),其中每种产品有1~2种颜色。
求每种产品各颜色的数量差值(对于只有一种颜色的保留产品总数)
解法如下:
1.先求出每种产品各颜色的数量
这个不难,直接使用group by 就可以啦。SQL语句如下:
1 select id,col,sum(num) total from chanpin group by id,col
结果:
2.求每种产品各颜色的数量差值(对于只有一种颜色的保留产品总数)
因为每种产品只有1~2中:
(1)如果有两种,结果就是颜色多的产品数量 - 颜色少的产品数量;
(2)如果有一种,结果就是这种颜色的产品数量。
SQL语句如下:
1 select A.id ,if(2 count(*) >1, #判断条件,颜色数量3 max(A.total) - min(A.total), #颜色多的产品数量 - 颜色少的产品数量4 max(A.total) #产品数量5 ) dis6 from (7 select id,col,sum(num) total from chanpin group by id,col8 ) A 9 group by A.id;
结果:
0 0
- 一道SQL面试例题 if...else 与聚集函数
- else if 与else
- sql if else
- sql if else 语句
- sql update if else
- switch 与if else 效率比较 -------面试常考
- if.....else if .....else 与switch....case.....
- 关于if与else
- switch 与 if/else
- switch 与 if else
- if...else if与if的区别
- IF- ELSE Conditon sql code
- Oracle SQL中的 IF ELSE
- sql 查询结果if else
- SQL聚集函数
- SQL 聚集函数
- 面向对象与IF-ElSE
- switch case 与 if else
- 堆排序
- Android布局笔记
- codeforces 343A Rational Resistance
- 关于解压文档名中文出现乱码解决方案
- iOS -- git的常用命令,使用步骤
- 一道SQL面试例题 if...else 与聚集函数
- [LeetCode 190]Reverse Bits
- C++编译器无法捕捉到的8种错误
- linux命令中的head命令
- CSS3手机浏览器兼容情况
- PHP初学-io操作
- linux shell “(())” 双括号运算符使用
- JVM调优总结 -Xms -Xmx -Xmn -Xss
- CSDN学院 免费技术答疑公开课,本周四场即将开播~~~