我有以下数据
id -> Company_name -> chain -> subchain -> number
1 -> account 555 -> 555 -> 555ZZ -> 123450
2 -> account 745 -> 745 -> 745AA -> 123451
3 -> account 745 -> 745 -> 745AA -> 123452
4 -> account 745 -> 745 -> 745BB -> 123453
5 -> account 745 -> 745 -> 745CC -> 123454
6 -> account 555 -> 555 -> 555ZZ -> 123455 我要做的是从列"chain“和"subchain”的不同列表中获取列"number“和列"id”的列表。
所以我需要知道那些具有相同链和不同子链的记录的编号和id。
这段代码将给我不同的列表,但不会给出被选择的一次的编号和id。
如何使用MySQL处理此问题?从记录中选择DISTINCT链、子链
下面是我需要的结果
id -> Company_name -> chain -> subchain -> number
1 -> account 555 -> 555 -> 555ZZ -> 123450
2 -> account 745 -> 745 -> 745AA -> 123451
4 -> account 745 -> 745 -> 745BB -> 123453
5 -> account 745 -> 745 -> 745CC -> 123454id列是主列,数字是唯一的价值链,它是将多个记录链接/分组在一起的值。Subchain会将组区分为一个子组
发布于 2013-08-08 04:00:39
如果您可以接受任意的id,那么只需使用group by
SELECT max(id) as id, min(company_name) as company_name, chain, subchain, min(number) as number
FROM records
GROUP BY chain, subchain;如果您需要其他三个字段来自相同的记录(例如,示例中id最小的字段):
SELECT min(id) as id,
substring_index(group_concat(company_name order by id), ',', 1) as company_name,
chain, subchain,
substring_index(group_concat(number order by id desc), ',', 1) + 0 as number
FROM records
GROUP BY chain, subchain;https://stackoverflow.com/questions/18112146
复制相似问题