2013-02-18 25 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

相關問題