嗨,伙计们,我希望你们能帮我写一个SQL查询。我已经实现了我想要的表,但我必须一排排地把它建好。这是没有效率的,当我结束200行,这是放慢网站的速度。
我的桌子是这样的:
FeedBack Table:
RatingID | RATING| TUTORIAL_ID| TUTORIAL_NAME
5716| 4 | 993| Test002
5717| 3 | 993| Test002
5777| 1 | 994| eClip3
5886| 1 | 994| eClip3
7127| 4 | 1235| FTIR001
7128| 4 | 1235| FTIR001
7169| 3 | 1235| FTIR001
7170| 2 | 1235| FTIR001
7131| 4 | 1235| FTIR001
7187| 3 | 1235| FTIR001
7132| 3 | 1235| FTIR001
我想要制作的是一个表格的所有独特的教程名称,然后总次数的具体教程被评级;
1(not useful), 2(somewhat useful), 3(useful), 4(Very Useful)
因此,查询应该使:
Tutorial Name | not Useful | Somewhat Useful| Useful| Very Useful
Test002| 0| 0|1|1
eClip3|2|0|0|0
FTIR001| 0| 1| 3| 3
该表显示在一个网页上,后面是C#。目前,我在表中循环查找单个教程名称的列表,然后对每个剪辑名称选择Count(*),其中评级=1,等等。并逐行构建表。
我真正想知道的是,是否有办法一次做到这一切。这将大大提高网站的效率,因为我想要显示数据的200+教程。
发布于 2014-10-29 11:36:37
select tutorial_name,
sum(case when rating=1 then 1 else 0 end) "not Useful",
sum(case when rating=2 then 1 else 0 end) "Somewhat Useful",
sum(case when rating=3 then 1 else 0 end) "Useful",
sum(case when rating=4 then 1 else 0 end) "Very Useful"
from feedback
group by tutorial_name;
是您需要的查询。
https://stackoverflow.com/questions/26629181
复制相似问题