Sql 需要一些帮助以2 COUNT#u BIG';s
好的,我正在尝试创建一个索引视图,它与一个简单的表相对应,该表存储人们认为对一篇文章有利/不利的结果。这是对帖子投票的结果 这是我的PSEDOO假表:-Sql 需要一些帮助以2 COUNT#u BIG';s,sql,tsql,subquery,indexed-view,Sql,Tsql,Subquery,Indexed View,好的,我正在尝试创建一个索引视图,它与一个简单的表相对应,该表存储人们认为对一篇文章有利/不利的结果。这是对帖子投票的结果 这是我的PSEDOO假表:- HelpfulPostId INT IDENTITY(1,1) NOT NULL PRIMARY KEY, PostId INT NOT NULL, IsHelpful BIT NOT NULL, UserId INT NOT NULL 因此,一个用户只能在每篇文章中投一票。这是一个1(有用)或0(无用)的想法: 不能在索引视图中使用计数(
HelpfulPostId INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
PostId INT NOT NULL,
IsHelpful BIT NOT NULL,
UserId INT NOT NULL
因此,一个用户只能在每篇文章中投一票。这是一个1(有用)或0(无用)的想法:
- 不能在索引视图中使用计数(*)
- 不能聚合位字段
嗯。。这是行不通的:(它怎么知道IsHelpfulCount的计数是多少?)这就是我需要定义的,在这个视图中:(这可以是子查询吗?稍加调整,现在就好了。我不得不删除标识字段(结果我意外地发布了它..这在我进行聚合时是不可能的:P)。我用2x子查询(进行计数)检查了快速选择,这一切都很好:)我很幸运我使用了1和0..所以求和会起作用:):(当我尝试为该视图编制索引时,它不起作用。说我需要一个count\u BIG(*)吗?…但是当我在select语句中添加以下内容时,它现在起作用了(我可以添加一个唯一的聚集索引)。=>count\u BIG(*)作为TotalCountcheers。确认也很有效:)cheers配合完成此操作。当最大行数受int主键限制时,如何计算大行数?我这样做是因为索引视图只有在尝试执行计数字段时才像计数大。
PostId INT NOT NULL,
IsHelpfulCount COUNT_BIG (WHERE IsHelpful = 1)
IsNotHelpfulCount COUNT_BIG (WHERE IsHelpful = 0)
CREATE VIEW dbo.Example
WITH SCHEMABINDING
AS
SELECT
PostId,
SUM(CAST(IsHelpful AS bigint)) AS IsHelpfulCount,
SUM(CAST(1-IsHelpful AS bigint)) AS IsNotHelpfulCount,
COUNT_BIG(*) AS Dummy --Used to satisfy requirement
FROM
dbo.bob
GROUP BY
PostId
GO
CREATE UNIQUE CLUSTERED INDEX IXC_Test ON dbo.Example (PostId)
GO