Azure-Sql-Database

列 ‘Comments.Text’ 在選擇列表中無效,因為它不包含在聚合函式或 GROUP BY 子句中

  • April 15, 2018

這個問題:Reason for Column 在選擇列表中無效,因為它既不包含在聚合函式中,也不包含在 GROUP BY 子句中 | Stack Overflow已經很好地解釋了問題的根源,甚至建議使用 max aggregate 作為解決方案。但是,讓我們舉個例子

group_id    item_id     comment
--------------------------------
1       abc     "blah-blah"
1       def     "tral-la-lah"
1       ghi
2       jkl
2       mno
2       pqr

我理解解決方案:我必須拿一個項目來代表分組max(item_id)。但是如何獲取所選項目的評論?它如何幫助我接受相應的評論?

編輯

一切都像這個問題一樣:列的原因在選擇列表中無效,因為它既不包含在聚合函式或 GROUP BY 子句中 | 堆棧溢出。我在這裡解決的唯一複雜問題是comment我想與max(item_id) group by group_id.

我正在使用這個野獸,哪些工具和技術用於建構數據資源管理器?| 元堆棧交換

你的問題不是很清楚,但我認為你想要這樣的東西:

select group_id, 
      item_id, 
      comment
from (
  select group_id,
         item_id, 
         comment, 
         row_number() over (partition by group_id order by item_id) as rn
  from the_unknown_table
) t
where rn = 1;

(您沒有說明您的 DBMS,所以這是 ANSI SQL)

SQL Fiddle 展示:http ://sqlfiddle.com/#!12/a8471/1

引用自:https://dba.stackexchange.com/questions/50308