需要對錶base_mri_device的compname、fieldstr、version欄位分別進行去重查詢,如何使用乙個sql搞定?
注意:是分別對3個字段進行去重,而不是3個字段聯合去重。
首先,必須進行三次查詢,而將查詢結果進行"行合併"需要用到union或union all;
其次,為了區分查詢結果屬於哪個字段,所以需要3列,
同時,為了保證每次查詢只對乙個字段進行去重查詢,可以將另外2個字段置空。
方式一:使用group by(資料庫通用)
--方式二:使用distinct(oracle獨有)對compname、fieldstr、version進行去重查詢
select
*from (select compname, '' fieldstr, ''
version
from
base_mri_device
union
allselect
'' compname, fieldstr, ''
version
from
base_mri_device
union
allselect
'' compname, ''
fieldstr, version
from
base_mri_device)
group
by compname, fieldstr, version
--方式一對compname、fieldstr、version進行去重查詢
select
distinct compname, '' fieldstr, ''
version
from
base_mri_device
union
allselect
distinct
'' compname, fieldstr, ''
version
from
base_mri_device
union
allselect
distinct
'' compname, ''
fieldstr, version
from base_mri_device
方式二
distinct多字段去重查詢問題
對於很多初學者來說distinct的單字段去重是很容易理解和使用的,但是有些初學者就會有這樣的疑問,如果distinct放在多個字段前面作用會是怎樣的呢?這裡舉個簡單易懂的例子 多字段去重sql語句 select distinct id,aa,bb from tname 上述語句是查詢欄位id aa...
mysql去重欄位 mysql多字段去重,並計數
問 題 mysql版本5.5.42 有兩個表,表結構與資料如下 1 goods表 create table goods id int 10 unsigned not null,product varchar 180 collate utf8mb4 unicode ci not null,size v...
SQL 部分欄位去重查詢
在要刪除的有重複資料中存在幾種情況 1.存在兩條完全相同的紀錄 這是最簡單的一種情況,用關鍵字distinct就可以去掉。example select distinct from table 表名 where 條件 2.存在部分字段相同的紀錄 有主鍵id即唯一鍵 如果是這種情況的話用distinct...