簡體   English   中英

如何在mysql中為兩列選擇唯一值

[英]How to select only distinct values for two columns in mysql

我已經創建了一張桌子

CREATE TABLE `region_details` (
  `id` int(5) NOT NULL,
  `file_id` varchar(20) NOT NULL,
  `region` varchar(30) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

假設我有10條記錄,如下所示

id     file_id     region
1      aaa         a
2      bbb         b
3      ccc         a
4      ddd         c
5      abc         d
6      a01         a
7      j05         b
8      005         c
9      a1021       a
10     111j        b

我需要ID和區域以獲取不同的區域值

   id     region
    1     a
    2     b
    4     c
    5     d

只需執行GROUP BY ,使用MIN(id)選擇每個區域的第一個ID。

select min(id) as id, region
from region_details
group by region

您可以這樣做:

SELECT min(id),region
FROM YourTable
GROUP BY region

其他兩個答案將Id匯總為一個聚合函數( minmax或其他縮減函數),但查看數據,結果可能是您想要的都是id的唯一組合和區域,您可以使用以下方法找到:

select id, region
from yourtable
group by id, region

如果您想了解如何/如何/哪些列進行匯總,由於給定ID /區域組合存在多個文件,您可以嘗試:

select id, region, count(*)
from yourtable
group by id, region

任何count(*)值大於1的行都表明您已經在這些特定組合下匆匆忙忙刪除了多個文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM