我找不到这个问题的解决方案。
我的脚本中有 COUNT_BIG(),并且收到“SQL71640:需要 COUNT_BIG(a)”错误。但是当我将脚本更改为 COUNT_BIG(1) 时,错误将更改为 COUNT_BIG() is required...
我在这里遗漏了什么吗?
SQL71640:使用此工具创建 SELECT 列表中包含 SUM(a) 的物化视图时,需要 COUNT_BIG(a)。
示例脚本:
CREATE MATERIALIZED VIEW [EDW_DM].[MVW_Fact_Transaction] WITH ( DISTRIBUTION = HASH (H_PlayerHashKey)) AS
SELECT
some columns
SUM(CAST (ISNULL([Column x], 0) AS MONEY)) AS [Column x],
SUM(CAST (ISNULL([Column x], 0) AS MONEY)) AS [Column x],
SUM(CAST (ISNULL([Column x] * [Column x] * 0.0001, 0) AS MONEY)) AS Column x,
COUNT_BIG(*) AS cb
FROM
[EDW_DM].[Fact_Table]
GROUP BY
some columns
我尝试使用您的代码在我的环境中重现该问题,但出现了相同的错误:
我使用 Visual Studio Installer 将我的 Vs2019 VS2019 更新到最新版本。安装后,我等待了一段时间并尝试运行代码,它成功运行,没有任何错误。欲了解更多信息,您可以参考this。
我在 Visual Studio 2022 数据库项目中的物化视图项目中遇到了同样的问题。据我从错误消息中了解到,Visual Studio 需要为每个汇总列提供单独的 count_big 。在我添加额外的 count_big 之后,错误就消失了。
VS 中出现错误的 SQL 脚本: 创建物化视图 [dbo].[测试]
WITH(分布=哈希(a))
AS 选择a、b、sum(c)作为sum_c,sum(d)作为sum_d,count_big(*)作为cb
来自我的表 按 a、b 分组
当我编译上面的代码时,出现此错误 SQL71640:使用此工具创建 SELECT 列表中包含 SUM(a) 的物化视图时,需要 COUNT_BIG(a)。
我将脚本更改为以下代码以解决错误消息 创建物化视图 [dbo].[测试]
WITH(分布=哈希(a))
AS 选择a、b、sum(c)作为sum_c,sum(d)作为sum_d,count_big(*)作为cb,count_big(c)作为cb2,count_big(d)作为cb3
来自我的表 按 a、b 分组