Sql 使用两个表获取项目的降序列表
这些是我的表格定义Sql 使用两个表获取项目的降序列表,sql,sql-server,greatest-n-per-group,Sql,Sql Server,Greatest N Per Group,这些是我的表格定义 CREATE TABLE [dbo].[HistoricoSeries] ( [IDHistoricoSeries] INT IDENTITY (1, 1) NOT NULL, [IDUtilizador] INT NOT NULL, [codepisodio] INT NOT NULL, CONSTRAINT [PK_historicoseries] PRIMARY KEY CLUSTERED ([IDHistorico
CREATE TABLE [dbo].[HistoricoSeries] (
[IDHistoricoSeries] INT IDENTITY (1, 1) NOT NULL,
[IDUtilizador] INT NOT NULL,
[codepisodio] INT NOT NULL,
CONSTRAINT [PK_historicoseries] PRIMARY KEY CLUSTERED ([IDHistoricoSeries] ASC),
CONSTRAINT [FK_96] FOREIGN KEY ([IDUtilizador]) REFERENCES [dbo].[Utilizadores] ([IDUtilizador]),
CONSTRAINT [FK_hse] FOREIGN KEY ([codepisodio]) REFERENCES [dbo].[EPISODIOS] ([codepisodio])
);
CREATE TABLE [dbo].[EPISODIOS] (
[idepisodio] INT IDENTITY (1, 1) NOT NULL,
[codepisodio] INT NOT NULL,
[codserie] INT NOT NULL,
[codtemporada] INT NOT NULL,
[numeroepisodio] INT NOT NULL,
[tituloepisodio] VARCHAR (53) NOT NULL,
[duracaominutos] INT NOT NULL,
PRIMARY KEY CLUSTERED ([codepisodio] ASC)
);
这是我的SQL Server查询,我已经黑客攻击了很长一段时间,没有结果
我的最终目标是从表中列出最受关注的剧集,但这是一个错误
当子查询未引入EXISTS时,只能在选择列表中指定一个表达式
它自己出现了,我不知道如何修复
有人能透露一点信息吗?
谢谢。您的代码看起来像SQL Server。如果是这样,您可以在子查询中使用
TOP WITH TIES
:
string maisVistoEpisodio = "SELECT * FROM EPISODIOS WHERE EPISODIOS.codepisodio IN (SELECT codepisodio, count(codepisodio) AS mais_vistos FROM HISTORICOSERIES GROUP BY codepisodio ORDER BY COUNT (codepisodio) DESC)";
用您正在使用的数据库标记您的问题。请解释“最受关注”与数据的关系。
WHERE-IN(SELECT…
子查询必须返回一列,但子查询返回两列。在我了解到“TOP-with-TIES
”之前,应该使用JOIN
而不是WHERE-IN
”-现在我希望有一个带领结的上衣
和带高领的上衣
,哦,好吧。确实是sqlserver。“带领带的上衣”我不知道,但那是学习!将尽快尝试并发回。这是完美的!我永远也不会一个人去那里!谢谢
SELECT E.*
FROM EPISODIOS E
WHERE E.codepisodio IN (SELECT TOP (1) WITH TIES HS.codepisodio
FROM HISTORICOSERIES HS
GROUP BY HS.codepisodio
ORDER BY COUNT(*) DESC
)