首页 新闻 赞助 找找看

业务中求平均分的需求,求教~~

0
悬赏园豆:20 [已解决问题] 解决于 2014-01-13 10:59

一.获取产品最近评论、平均评分值

--评论表
--
------------------------------------- Id [Content] Score 1 '评论1' 4 2 '评论2' 2 3 '评论3' 5 4 '评论4' 2
--产品表 --------------------------------------- Id ProductName 1 '产品名称1' 2 '产品名称2' 3 '产品名称3' 4 '产品名称4'
--产品评论关联表 --------------------------------------- Id ProductId CommentId 1 1 1 2 2 1 3 3 1 4 1 2

 

不明白的请提出来

最佳损友。的主页 最佳损友。 | 初学一级 | 园豆:63
提问于:2013-12-09 15:38
< >
分享
最佳答案
0

那就用ProductId来分组。

SELECT

p.ProductName, AVG(c.Score) AS [avg]

FROM Product_Comment pc LEFT JOIN Comment c ON pc.CommnetId = c.Id LEFT JOIN Product p ON pc.ProductId = p.Id GROUP BY p.ProductId ,p.ProductName

觉得这样的性能够你用了

收获园豆:10
junjieok | 小虾三级 |园豆:779 | 2013-12-09 16:47

按照GroupID分组不就好了么

平常心队长 | 园豆:1113 (小虾三级) | 2013-12-09 17:08
其他回答(2)
0

你的ProductId与CommentId是个啥对应关系啊?你是要干嘛?是要别人帮你写个求平均分的语句还是干嘛?

bitbug | 园豆:470 (菜鸟二级) | 2013-12-09 15:53

获取产品最近评论、平均评分值

把这个需求求教要怎么写啊!!

支持(0) 反对(0) 最佳损友。 | 园豆:63 (初学一级) | 2013-12-09 15:58

@最佳损友: 你是要用文字描述这个需求吗?

支持(0) 反对(0) bitbug | 园豆:470 (菜鸟二级) | 2013-12-09 16:28

@bitbug: - -  对表达无力吖~~  当然是写语句最好拉!!

支持(0) 反对(0) 最佳损友。 | 园豆:63 (初学一级) | 2013-12-09 16:33
0

刚好有时间,写了个,你看看

SELECT
    p.ProductName,
    AVG(c.Score) AS [avg]
FROM Product_Comment pc
LEFT JOIN Comment c
    ON pc.CommnetId = c.Id
LEFT JOIN Product p
    ON pc.ProductId = p.Id
GROUP BY p.ProductName
收获园豆:10
sam.c | 园豆:148 (初学一级) | 2013-12-09 16:31

用产品名来进行分组,会产生很大的性能问题吧!!

支持(0) 反对(0) 最佳损友。 | 园豆:63 (初学一级) | 2013-12-09 16:34

@最佳损友: 高性能的sql 不会写啊,等高手来吧

支持(0) 反对(0) sam.c | 园豆:148 (初学一级) | 2013-12-09 16:40
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册