在查一組數(shù)據(jù)的時候報錯提示GROUP BY,于是查了一下谋竖,GROUP BY與ORDER BY的區(qū)別尚蝌?
GROUP BY使用某個字段去重
SELECT * 字段名1 FROM 表名 GROUP BY 字段名2瑟幕;
ORDER BY使用某個字段排序磕蒲,默認從大到小
SELECT * 字段名1 FROM 表名 ORDER BY 字段名2。
創(chuàng)建test databases table
1只盹、groupby使用方法---對選擇的列去除重復的項
eg:目前salary有幾種情況辣往?
select * from test group by salary;
2、orderby使用方法 -- 對選擇的列進行排序
eg:對age從大到小排序
select * from test order by age desc;
eg:對name進行排序
select * from test order by name desc; 這樣得到的并非是我們想要的結果
因為name的類型是varchar殖卑,不是數(shù)字類型站削,對于這種既有字符也有數(shù)字的情況怎么進行排序?
可以利用字符替換,獲取后面的number進行排序:select *孵稽,replac(name,'person','') as t from test order by t+0 desc;
3许起、orderby與groupby混合使用
eg:如果想獲取不同salary最新name的信息
select * from test group by salary;
并不是我們想要的信息,+ orderby name不影響篩選出來的結果菩鲜,因為order by 是對上面結果進行排序园细,不能做到先排序后group
針對與我們想要先order再group的思想:select * from (select * from test order by id desc)as test1 group by salary