怎么查询一个品牌在数据库里面出现的次数
如何查询一个品牌在数据库里面出现的次数
sql2000
请问如何查询一个品牌在数据里面出现的次数
目前表情况如下
想要实现效果 获得 3种占比最多的品牌名称 剩下的显示其他
------解决思路----------------------
SQL2005以上用CTE,SQL2000版本把前三生成个别名表连接
SQL2000方法
(SELECT CASE WHEN b.[PP_mc] IS NULL THEN N'其它'
ELSE a.[PP_mc]
END AS [PP_mc]
,SUM([次数]) AS [次数]
FROM ( SELECT a.[PP_mc]
,COUNT(1) AS [次数]
FROM #kehu_rhypp AS a
INNER JOIN #Kehu_Info AS b ON ',' + b.[jyrhypp] + ',' LIKE '%,'
+ a.[PP_mc] + ',%'
GROUP BY a.[PP_mc]
) AS a
LEFT JOIN ( SELECT TOP 3
[PP_mc]
FROM #kehu_rhypp AS a
INNER JOIN #Kehu_Info AS b ON ',' + b.[jyrhypp]
+ ',' LIKE '%,'
+ a.[PP_mc] + ',%'
GROUP BY a.[PP_mc]
ORDER BY COUNT(1) DESC
) AS b ON a.[PP_mc] = b.[PP_mc]
GROUP BY CASE WHEN b.[PP_mc] IS NULL THEN N'其它'
ELSE a.[PP_mc]
END
,b.[PP_mc]
ORDER BY CASE WHEN b.[PP_mc] IS NULL THEN 2
ELSE 1
END
,[次数] DESC)
sql2000
请问如何查询一个品牌在数据里面出现的次数
目前表情况如下
表一、表名称kehu_rhypp
id PP_mc
1 引航
2 壳牌
3 龙蟠
4 康普顿
5 角马
6 统一
表二、表名称Kehu_Info
KehuMc jyrhypp
张三修理厂 引航,龙蟠
李四修理厂 壳牌,引航
王二修理厂 角马,引航 壳牌
小小修理厂 康普顿,壳牌,龙蟠,引航
小王修理厂 统一
想要实现效果 获得 3种占比最多的品牌名称 剩下的显示其他
品牌名称 次数
引航 4
壳牌 3
龙蟠 2
其他 3
------解决思路----------------------
SQL2005以上用CTE,SQL2000版本把前三生成个别名表连接
SQL2000方法
(SELECT CASE WHEN b.[PP_mc] IS NULL THEN N'其它'
ELSE a.[PP_mc]
END AS [PP_mc]
,SUM([次数]) AS [次数]
FROM ( SELECT a.[PP_mc]
,COUNT(1) AS [次数]
FROM #kehu_rhypp AS a
INNER JOIN #Kehu_Info AS b ON ',' + b.[jyrhypp] + ',' LIKE '%,'
+ a.[PP_mc] + ',%'
GROUP BY a.[PP_mc]
) AS a
LEFT JOIN ( SELECT TOP 3
[PP_mc]
FROM #kehu_rhypp AS a
INNER JOIN #Kehu_Info AS b ON ',' + b.[jyrhypp]
+ ',' LIKE '%,'
+ a.[PP_mc] + ',%'
GROUP BY a.[PP_mc]
ORDER BY COUNT(1) DESC
) AS b ON a.[PP_mc] = b.[PP_mc]
GROUP BY CASE WHEN b.[PP_mc] IS NULL THEN N'其它'
ELSE a.[PP_mc]
END
,b.[PP_mc]
ORDER BY CASE WHEN b.[PP_mc] IS NULL THEN 2
ELSE 1
END
,[次数] DESC)