SQL SERVER 下:1、递归查询父分类下的各个子分类。 2、查询每个商品分类中最贵的前两个商品SQL
2024-10-06 07:36:04
1、递归查询父分类下的各个子分类。表设计:
SQL:
--CTE 语句(适用于MSSQL2005以后版本)
with cte_testNavi(Id,Name,Pid )
as
(
--这是查询语句
SELECT Id,Name,Pid FROM Navi
WHERE Name='汽车'
union all
--这是需要递归的部分,CTE 自身调用完成循环递归查找
SELECT a.Id,a.Name,a.Pid FROM Navi a
INNER JOIN
cte_testNavi b
ON
(a.Pid=b.Id)
)
select * from cte_testNavi
2、查询每个商品分类中最贵的前两个商品SQL
表设计:
SQL:
--要求根据商品分类取出每个商品下最贵的前两个物品
-- OVER( partition by c.ClassID order by i.Price DESC)over 开窗函数可以避免group by带来的不包含在子列的情况,
--但是开窗函数会返回多行结果,要根据使用情况去判定,比如这里我要按照ClassID商品类别ID进行分组
--RANK函数微软的定义是:返回结果集分区内每行的排名。一行的排名是一个加上所涉及行之前的行列数。
--比如这里我按Price价格去排序,取出每个分类下最贵的商品从上到下排序
SELECT * FROM
(
SELECT i.Price,i.CommodityName,c.ClassName,RANK() OVER( partition by c.ClassID order by i.Price DESC) rank2
FROM CommodityInfo i
INNER JOIN CommodityClass c
ON i.CommodityClass=c.ClassID
)R
WHERE rank2<=2;
最新文章
- C#_基本类型
- EntityFramework 更新表结构到数据库
- POJ1850 Code(组合+康托展开)
- 《分销系统-原创第一章》之“多用户角色权限访问模块问题”的解决思路( 位运算 + ActionFilterAttribute )
- System Operations on AWS - Lab 5W - Managing Resources (Windows)
- 树莓派做AP发射wifi(RTL8188CUS芯片) 分类: shell ubuntu Raspberry Pi 2014-11-29 01:25 822人阅读 评论(0) 收藏
- iOS workspace 依次编译多个工程
- decode-ways(动态规划)
- Dynamics CRM 导入用户数据错误 could not retrieve salesperson role
- SourceTree 文件被锁异常
- Mvc_model实体数据验证
- (binary_search) Can you find it hdu2141
- 如何将MP3录音转文字
- selenium+java-查找页面中包含关键字的URL
- Baidu 推荐技术平台(offer)
- [Angular 6] 初学angular,环境全部最新,[ ng serve ] 不能启动,卡在 95% 不动 =>; 解决方案
- 字段计算器VBS
- js数字进制转换
- shell之lvm
- java动态代理(JDK和CGLIB)笔记