A B
K1 12
K2 12
S1 12
K3 9
K1 8
K2 10

我想在这个场景中这样做,只有K1和K2连接在一起,因为只有在这个特定点,数字1和2并不重要,因为B列匹配.字母始终很重要,因此不能连接S1.

A B
K 12
S1 12
K3 9
K1 8
K2 10

同样重要的是,A栏不能分割.

所以,如果K(1)=12=K(2),那么把它们结合起来就是K,如果这有意义的话? 这样的事情有可能发生吗?

给定的数据是预制的,所以我无法对其进行任何更改,除非有一种方法可以拆分该列并在修复后将其连接回go .

推荐答案

试试这个:

SELECT  CASE WHEN COUNT(A) > 1 THEN LEFT(A,1) ELSE MAX(A) END As A, B
FROM [table]
GROUP BY LEFT(A, 1), B

点击此处查看:

https://dbfiddle.uk/yiX1MnpX

Sql相关问答推荐

如何将资源密集型自连接转换为更快的查询?

解析键-值对,根据值 Select ,并使用SQL创建新列

在请求结束之前,PostgreSQL不会考虑使用中的删除

重新组合已排序的日期范围

UPDATE查询中的乐观锁

按分隔符和总和分析字符串

返回找到的最小和最大row_number()spark SQL

Redshift PL/pgSQL循环中的参数化列名

使用递归CTE在BigQuery中获取文件路径

统计PostgreSQL中前10个最大大小表的行数

SQL OR子句如何在JOINON查询中工作?

SQL 根据前一天的最大值计算每天的值数

Clickhouse:左连接表到外部数组

如何在 SQL 中将两行(或多行)jsonb 数组合并为一行

如何使用 join 和 where 子句从另一表中仅删除一个表中的值

带聚合函数的 percentile_cont

从 varchar 列中删除特殊字符后的前面的零和字符时遇到问题

CURRENT_ROW 窗口框架上的 SQL 滞后

snowfalke 会在 Select 运行时锁定表吗?

ACCESS SQL - 有没有办法使用通配符仅 Select 字段的特定部分?