我设法整合了来自不同来源的数据,以期根据世界各地的观看情况来制作电影排名。在理想的情况下,我的数据非常完整,以至于排名很容易,但是我只能继续自己拥有的东西。当我查看数据时,我通过眼球知道如何使计算机完成我的眼睛如何对影片进行评级,但这是以光标的方式进行的,无论如何都要进行编码。理想情况下,我想使用SQL,应该使用Set理论。有谁知道我该怎么做吗?
基于国家/地区订购表的目测方法。
我看到在澳大利亚(悉尼)有4部电影被评级,所以这是我的出发点,最佳电影是《女人的香气》,《敢死队》,然后是好丑,然后硬死。然后我看比利时,发现《善意狩猎》和《杀死比尔》在澳大利亚都没有评级,所以我把它们放在一边,然后转到法国和巴黎。在这里,我看到《好坏丑陋》在澳大利亚排名第一,在第三名,所以我知道《第一接触》和《善意狩猎》的评分与《虎胆龙威》处于同一水平。...直到我能从其他国家看到《虎胆龙威》很难将其与善意狩猎和消耗品进行比较。。。。。。。
O,“排名”字段是排名,“总排名”是按城市为一个国家排名的电影数量。...
这是一个棘手的问题,已经在我脑海中浮现了几天。...
CREATE TABLE [dbo].[QuestionToAsk2]
(
[ranking] [bigint] NULL,
[totalrank] [bigint] NULL,
[Film] [varchar](50) NULL,
[Country] [varchar](255) NULL,
[City] [varchar](50) NULL
) ON [PRIMARY]
GO
INSERT [dbo].[QuestionToAsk2] ([ranking], [totalrank], [Film], [Country],
[City])
VALUES (1, 2, N'***First Contact', N'***UK', N'Manchester'),
(2, 2, N'***Dumb And Dumber', N'***UK', N'Manchester'),
(1, 3, N'***Shawshank Redemption', N'***Germany', N'Munich'),
(2, 3, N'***The Expendibles', N'***Germany', N'Munich'),
(3, 3, N'***The Notebook', N'***Germany', N'Munich'),
(1, 2, N'***Kill Bill', N'***Germany', N'Hamburg'),
(2, 2, N'***King Arthur', N'***Germany', N'Hamburg'),
(1, 2, N'***Good Will Hunting', N'***Belgium', N'Brussels'),
(2, 2, N'***Kill Bill', N'***Belgium', N'Brussels'),
(1, 5, N'***First Contact', N'***Russia', N'Moscow'),
(2, 5, N'***Good Will Hunting', N'***Russia', N'Moscow'),
(3, 5, N'***Scent Of A Woman', N'***Russia', N'Moscow'),
(4, 5, N'***Sea Of Love', N'***Russia', N'Moscow'),
(1, 3, N'***The Godfather part 3', N'***Japan', N'Tokyo'),
(2, 3, N'***Scent Of A Woman', N'***Japan', N'Tokyo'),
(3, 3, N'***Sea Of Love', N'***Japan', N'Tokyo'),
(1, 2, N'***Star Wars Episode IV', N'***Portugal', N'Porto'),
(2, 2, N'***First Contact', N'***Portugal', N'Porto'),
(1, 2, N'***Star Wars Episode IV', N'***USA', N'Boston'),
(2, 2, N'***Revenge Of The Sith', N'***USA', N'Boston'),
(1, 2, N'***Good Will Hunting', N'***Italy', N'Rome'),
(2, 2, N'***Sea Of Love', N'***Italy', N'Rome'),
(1, 4, N'***Scent Of A Woman', N'***Australia', N'Sydney'),
(2, 4, N'***The Expendibles', N'***Australia', N'Sydney'),
(3, 4, N'***The Good The Bad and The Ugly', N'***Australia', N'Sydney'),
(4, 4, N'***Die Hard', N'***Australia', N'Sydney'),
(1, 2, N'***Kill Bill', N'***Switzerland', N'Geneva'),
(2, 2, N'***King Arthur', N'***Switzerland', N'Geneva'),
(1, 4, N'***Scent Of A Woman', N'***UK', N'London'),
(2, 4, N'***Shawshank Redemption', N'***UK', N'London'),
(3, 4, N'***Die Hard', N'***UK', N'London'),
(4, 4, N'***The Notebook', N'***UK', N'London'),
(1, 3, N'***The Good The Bad and The Ugly', N'***France', N'Paris'),
(2, 3, N'***First Contact', N'***France', N'Paris'),
(3, 3, N'***Good Will Hunting', N'***France', N'Paris'),
(1, 3, N'***First Contact', N'***Spain', N'Madrid'),
(2, 3, N'***Good Will Hunting', N'***Spain', N'Madrid'),
(3, 3, N'***The Good The Bad and The Ugly', N'***Spain', N'Madrid'),
(1, 2, N'***Shawshank Redemption', N'***Poland', N'Warsaw'),
(2, 2, N'***Good Will Hunting', N'***Poland', N'Warsaw'),
(1, 2, N'***Scent Of A Woman', N'***Slovakia', N'Poprad'),
(2, 2, N'***Shawshank Redemption', N'***Slovakia', N'Poprad'),
(1, 3, N'***The Notebook', N'***Slovakia', N'Kosice'),
(2, 3, N'***Sea Of Love', N'***Slovakia', N'Kosice'),
(3, 3, N'***Shawshank Redemption', N'***Slovakia', N'Kosice'),
(1, 3, N'***First Contact', N'***France', N'Cannes'),
(2, 3, N'***Dumb And Dumber', N'***France', N'Cannes'),
(3, 3, N'***Shawshank Redemption', N'***France', N'Cannes'),
(1, 3, N'***Scent Of A Woman', N'***USA', N'New York'),
(2, 3, N'***Star Wars Episode IV', N'***USA', N'New York'),
(3, 3, N'***Revenge Of The Sith', N'***USA', N'New York'),
(1, 2, N'***Star Wars Episode IV', N'***Slovakia', N'Bratislava'),
(2, 2, N'***The Notebook', N'***Slovakia', N'Bratislava'),
(1, 2, N'***Scent Of A Woman', N'***Portugal', N'Lisbon'),
(2, 2, N'***Die Hard', N'***Portugal', N'Lisbon');
答案 0 :(得分:0)
如果我理解您的问题,就应该这样做。我已经重新创建了您的一些数据,但添加了一个虚构的电影评分栏,因此我们确实有必要进行排名。
CREATE TABLE #QuestionToAsk2
(
[Film] [varchar](50) NULL,
[Country] [varchar](255) NULL,
[City] [varchar](50) NULL,
[FilmRating] int
)
GO
INSERT into #QuestionToAsk2 ([Film], [Country], [City], [FilmRating])
VALUES (N'***First Contact', N'***UK', N'Manchester', 9),
(N'***Dumb And Dumber', N'***UK', N'Manchester', 10),
(N'***Shawshank Redemption', N'***Germany', N'Munich', 7),
(N'***The Expendibles', N'***Germany', N'Munich', 4),
(N'***The Notebook', N'***Germany', N'Munich', 2),
(N'***Kill Bill', N'***Germany', N'Hamburg', 6),
(N'***King Arthur', N'***Germany', N'Hamburg', 5),
(N'***Good Will Hunting', N'***Belgium', N'Brussels', 3),
(N'***Kill Bill', N'***Belgium', N'Brussels', 5)
select
rank() over(partition by city order by [FilmRating] desc) [Rank]
,count(*) over(partition by City) [TotalRank]
,film
,Country
,City
,[FilmRating]
from #QuestionToAsk2 a
这将产生: