高分求助一sql语句,有关频率查询

littlerainsnow 2005-10-01 02:56:46
我有两个表com_info,chem_type
com_info存放着产品的信息
chem_type存放着种类

chem_type如下所示:
id pro
--------------
1 乳化剂
2 农药增效剂
3 阳离子瓜尔胶
4 十二烷基苯磺酸钠

com_info如下所示:
id product
--------------
1 乳化剂,阳离子瓜尔胶
2 十二烷基苯磺酸钠,阳离子瓜尔胶
3 乳化剂
4 农药增效剂,十二烷基苯磺酸钠

也就是com_info中的product字段的值由chem_type中的pro字段中的值构成


我想统计一下在com_info中类型出现的频率
即显示
pro 频率
---------------
乳化剂 2
阳离子瓜尔胶
...全文
217 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
mschen 2005-10-01
  • 打赏
  • 举报
回复
/* 上边的多了一个括号,这个就可以了 */

Select a.pro,
count(b.product) As 频率
From chem_type a Left Join com_info b
On patindex('%'+a.pro+'%',b.product)>0
Group by a.pro
mschen 2005-10-01
  • 打赏
  • 举报
回复
/* 如果是ntext,就用patindex来搜索 */
Select a.pro,
count(b.product) As 频率
From chem_type a Left Join com_info b
On patindex('%'+a.pro+'%'),b.product)>0
Group by a.pro
mschen 2005-10-01
  • 打赏
  • 举报
回复
/* 修改了一些 */

Select a.pro,
count(b.product) As 频率
From chem_type a Left Join com_info b
On b.product like ''+a.pro+'%'
Group by a.pro
littlerainsnow 2005-10-01
  • 打赏
  • 举报
回复
谢谢楼上的,但chem_type中的pro字段类型是ntext,不支持比较或排序,请问怎么办
mschen 2005-10-01
  • 打赏
  • 举报
回复
Select a.pro,
count(*) As 频率
From chem_type a Left Join com_info b
On b.product like ''+a.pro+'%'
Group by a.pro
littlerainsnow 2005-10-01
  • 打赏
  • 举报
回复
我想统计一下在com_info中类型出现的频率
即显示
pro 频率
----------------------
乳化剂 2
阳离子瓜尔胶 2
十二烷基苯磺酸钠 2
农药增效剂 1

按降序排列


多谢各位了

34,873

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧