SELECT goods_id,goods_name FROM tdb_goods GROUP BY goods_name HAVING count(goods_name) >= 2
這個句子,用goods_name作為分組條件,那么每一個goods_name就會對應返回兩個goods_id,這樣每一條記錄上的goods_id列和goods_name列的數據量就不匹配了,goods_id列要顯示兩個數據,而goods_name要顯示一個數據。
MySQL extends the use of GROUP BY to allow selecting fields that are not mentioned in the GROUP BY clause;
MySQL對GROUP BY的使用進行了擴展,允許選擇在GROUP BY子句中沒有被提到的字段。
就這樣理解吧,網上說的應該不是mysql
2017-02-07
視頻中出現的
分組列是:goods_name
列函數是:count()
“列函數對于GROUP BY子句定義的每個組各返回一個結果”
??? ——視頻中只定義了一個分組“goods_name”。
“SELECT子句中的列名必須為分組列或列函數”
??? ——“SELECT goods_id,goods_name FROM tdb_goods GROUP BY goods_name......”。
??????? 我想條件中所述的列名應該是在"GROUP BY"后面的“goods_name”而并非"SELECT"后面的“goods_id,goods_name”,"SELECT"后面是要查找和顯示的范圍。
個人理解,希望能幫到樓主。
2017-02-23
存在版本group by 1055 錯誤的
select min(a.goods_id)goods_id,goods_name from tdb_goods a group by goods_name having count(goods_name)>1;