2013-02-18 44 views
0

可能很简单,但我无法弄清楚。对行进行计数并给出行的值

这里是我的SQL

select ag.product_id, COUNT(reviewer) as review_number  
from PRODUCT ag  
left join RATINGANDREVIEW rr on rr.product_id = ag.product_id 
where ag.product_id = 123 
group by ag.product_id 

这是给我的一个产品做评论的总数如下:

PRODUCT_ID:123

review_number:3

但我现在想要评论者的名字就像这样:

PRODUCT_ID:123

review_number:3

评:鲍勃史密斯

PRODUCT_ID:123

review_number:3

评:彼得琼斯

PRODUCT_ID:123

review_number:3

审稿:简·格林

我该怎么办呢?

回答

0

尝试这样

select ag.product_id, COUNT(reviewer) as review_number, rr.reviewer_name 
from PRODUCT ag  
left join RATINGANDREVIEW rr on rr.product_id = ag.product_id 
where ag.product_id = 123 
group by ag.product_id,rr.reviewer_name 
+0

我认为伯爵(评审),这里将始终为1,除非是同一人的一个以上的评论对于一种产品。 – fabricio 2013-02-18 18:43:34

+0

是的,你是对的..谢谢! – Rohit 2013-02-18 18:46:11

1

你可以做这样的事情:

select 
ag.product_id, 
reviewer, 

(select COUNT(reviewer) 
from PRODUCT ag 
left join RATINGANDREVIEW rr on rr.product_id = ag.product_id 
where ag.product_id = 123) as review_number 

from PRODUCT ag 
left join RATINGANDREVIEW rr on rr.product_id = ag.product_id 
where ag.product_id = 123 
+0

完美,谢谢! – user1571352 2013-02-19 09:27:36

相关问题