一道SQL面试例题 if…else 与聚集函数详解数据库
2023-06-13 09:20:08 时间
晚上回来,同学说面试遇到了一个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 ) dis 6 from ( 7 select id,col,sum(num) total from chanpin group by id,col 8 ) A 9 group by A.id;
结果:
3831.html
相关文章
- sql文件怎么导入sql server数据库_sql怎么导入数据库
- 详解SQL Server数据库架构和对象、定义数据完整性
- SQL语句中的DDL类型的数据库定义语言操作
- sql中,把varchar类型转换为int型,然后进行排序详解数据库
- MySQL创建数据库的SQL语句示例(mysql创建库语句)
- 库SQL Server数据库:从安装到使用(sqlserver数据)
- Mysql数据库用source命令导入SQL文件
- 如何优化SQL访问Oracle数据库?(sql访问oracle)
- 极速拥抱移动时代:MSSQL手机数据库软件(手机mssql数据库软件)
- 如何顺利完成 SQL Server 数据库的迁移?(sqlserver迁移)
- 字符串Oracle SQL中如何判断字符串(oracle sql判断)
- SQL Server数据库的日志删除优化(sqlserver删日志)
- Oracle数据库如何导出SQL文件?(oracle 导sql)
- Oracle SQL跟踪工具大揭秘!(oracle跟踪sql工具)
- Oracle数据库:高效追踪SQL语句的工具分享(oracle跟踪sql工具)
- mssql:微软SQL数据库服务器的智能管理方式(mssql的意思)
- 快速高效导出MySQL数据库到SQL文件(mysql导出sql文件)
- 库Oracle SQL数据库指引未来发展路径(oracle sql数据)
- Sql学习第一天——SQL练习题(建表/sql语句)