【问题标题】:combine value of a column if the correspondence in the other column repeated values [duplicate]如果另一列中的对应关系重复值,则合并一列的值[重复]
【发布时间】:2022-01-04 06:41:40
【问题描述】:

如果另一列中的对应重复值,则合并一列的值。

结果应该是 21,22,23(A列有重复值1)

24(A 列有重复值 2)

SELECT coulmn B from table group by column A 

见下表

Column A Column B
1 21
1 22
1 23
2 24

【问题讨论】:

  • 这能回答你的问题吗stackoverflow.com/questions/13639262/…
  • 我不明白这个问题,请提供一些raw data(在想要的查询之前),然后提供expected result。另外“sql”本身不是一个好标签,我们需要知道涉及哪个数据库供应商,请添加数据库作为标签(例如MySQL)

标签: sql


【解决方案1】:

我不确定您正在使用哪种数据库技术,但是使用 mysql 中的 group_concat 功能可以很容易地实现这一点

mysql>
mysql> create table t1(id int,value int);
Query OK, 0 rows affected (0.03 sec)

mysql>
mysql>
mysql> insert into t1 values(1,21),(1,22),(1,23),(2,24);
Query OK, 4 rows affected (0.00 sec)
Records: 4  Duplicates: 0  Warnings: 0

mysql>
mysql>
mysql>
mysql> select * from t1;
+------+-------+
| id   | value |
+------+-------+
|    1 |    21 |
|    1 |    22 |
|    1 |    23 |
|    2 |    24 |
+------+-------+
4 rows in set (0.00 sec)

mysql>
mysql>
mysql>
mysql> select id,group_concat(value) from t1 group by id;
+------+---------------------+
| id   | group_concat(value) |
+------+---------------------+
|    1 | 21,22,23            |
|    2 | 24                  |
+------+---------------------+
2 rows in set (0.00 sec)

【讨论】:

  • 我想要 commerce_order_item.title 这个因为我的查询是 SELECT commerce_order.order_id, commerce_order.mail, commerce_order.total_price__number, commerce_order.changed, commerce_order_item.title FROM commerce_order LEFT JOIN commerce_order_item ON commerce_order.order_id = commerce_order_item .order_id WHERE cart = 1 AND commerce_order.changed BETWEEN $startdate AND $endates
猜你喜欢
  • 2022-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-18
  • 2019-05-26
相关资源
最近更新 更多