下面先來看看例子:
table表
idname1a
2b3c
4c5d
庫結構大概這樣,這只是乙個簡單的例子,實際情況會複雜得多。
比如我想用一條語句查詢得到name不重複的所有資料,那就必須
使用distinct去掉多餘的重覆記錄。
select distinct name from table
得到的結果是:
nameab
cd好像達到效果了,可是沒有id的值,改一下查詢語句吧:
select distinct name, id from table
結果會是:
idname1a
2b3c
4c5d
distinct怎麼沒起作用?作用是起了的,不過他同時作用了兩個
字段,也就是必須得id與name都相同的才會被排除
我們再改改查詢語句:
select id, distinct name from table
很遺憾,除了錯誤資訊你什麼也得不到,distinct必須放在開頭。難到不能把distinct放到where條件裡?能,照樣報錯。
下面方法可行:
select *, count(distinct name) from table group by name
結果:id
namcount(distinct name)1a
12b1
3c14
d1最後一項是多餘的,不用管就行了,目的達到
group by 必須放在 order by 和 limit之前,不然會報錯
SQL DISTINCT 用法(去重)
現在以下資料 查有出現的teacherid 1 select teacherid from studentview code 結果 有重複的id出現 確實查法 1 select teacherid from student 2 group by teacherid view code 1 selec...
SQL Distinct處理多列的問題
今天在做ssis的etl工作時,其中乙個left join元件的執行結果總是會多出一些記錄。分析了一下,該問題的原因是右表中作為關聯的那一列資料有重複。left join的執行策略可以理解為根據左表的每一條記錄的關聯欄位去對照右表的關聯字段,如果右表的關聯字段存在重複,就會生成重複的記錄。如果左表存...
sql DISTINCT 關鍵字去掉重複的列
distinct關鍵字主要用來從select語句的結果集中去掉重複的記錄。如果使用者沒有指定distinct關鍵字,那麼系統將返回所有符合條件的記錄組成結果集,其中包括重複的記錄。記錄一下工作中用到的sql語句吧,下面sql實現了去掉重複列id後顯示的資料。select distinct u.id,...