给定以下选择语句:
Select t.name, SUM(st.row_count) as row_count
From sys.dm_db_partition_stats st
join sys.tables t on t.object_id = st.object_id
join ClientUpdateConfig c on t.name = c.TableName
Where (index_id < 2) and schema_id = schema_id('dbo')
and t.type ='U'
group by t.name
我还想选择 c.RowID 作为附加字段。查询按原样工作,但如果我将 1 更改为:
Select t.name, SUM(st.row_count) as row_count, c.RowID as current_row
我得到错误:
消息 8120,级别 16,状态 1,第 1 行列“ClientUpdateConfig.RowID”在选择列表中无效,因为它既不包含在聚合函数中,也不包含在 GROUP BY 子句中。
有人可以解释为什么我需要在聚合函数(我假设 SUM)或 group by 中选择它来选择它吗?我不明白这个限制 - 如果我能理解为什么会发生这种情况,也许我可以调整我的查询设计。