我创建了一个表
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
答案 0 :(得分:1)
只需执行GROUP BY
,使用MIN(id)
选择每个地区的第一个ID。
select min(id) as id, region
from region_details
group by region
答案 1 :(得分:1)
你可以这样做:
SELECT min(id),region
FROM YourTable
GROUP BY region
答案 2 :(得分:-1)
另外两个答案是将Id汇总到一个聚合函数(min
,或max
或其他一些reduce函数),但是查看数据,结果可能就是这样。您想要的是id和region的所有独特组合,您可以使用以下内容找到它们:
select id, region
from yourtable
group by id, region
如果您想了解如何/是否/列出哪些列,由于给定ID /区域组合存在多个文件,您可以尝试:
select id, region, count(*)
from yourtable
group by id, region
count(*)
值大于1的任何行都表明您已经在这些特定组合下搜索了多个文件。