【问题标题】:MySQL distinct, group_concat and count questionMySQL distinct、group_concat 和 count 问题
【发布时间】:2021-01-30 04:04:59
【问题描述】:

我有一张桌子。

+----------+----------------+--------+
| orderid  | barcode        | status |
+----------+----------------+--------+
| R-R34184 | K2020101500001 |      1 |
| R-R34184 | K2020101500001 |      1 |
| R-R34184 | K2020101500001 |      0 |
| R-R34184 | K2020101500001 |      0 |
| R-R34184 | K2020101500002 |      2 |
| R-R34184 | K2020101500002 |      2 |
| R-R34184 | K2020101500002 |      2 |
| R-R34184 | K2020101500002 |      2 |
| R-R34184 | K2020101500003 |      1 |
| R-R34184 | K2020101500003 |      1 |
| R-R34184 | K2020101500003 |      0 |
| R-R34184 | K2020101500003 |      0 |
| R-R34185 | K2020101500005 |      0 |
| R-R34185 | K2020101500005 |      0 |
| R-R34185 | K2020101500005 |      0 |
| R-R34185 | K2020101500005 |      0 |
| R-R34185 | K2020101500006 |      0 |
| R-R34185 | K2020101500006 |      0 |
| R-R34185 | K2020101500006 |      0 |
| R-R34185 | K2020101500006 |      0 |
| R-R34185 | K2020101500004 |      0 |
| R-R34185 | K2020101500004 |      0 |
| R-R34185 | K2020101500004 |      0 |
| R-R34185 | K2020101500004 |      0 |
| R-R34185 | K2020101500007 |      0 |
| R-R34185 | K2020101500007 |      0 |
| R-R34185 | K2020101500007 |      0 |
| R-R34185 | K2020101500007 |      0 |
| R-R34185 | K2020101500008 |      0 |
| R-R34185 | K2020101500008 |      0 |
| R-R34185 | K2020101500008 |      0 |
| R-R34185 | K2020101500008 |      0 |
+----------+----------------+--------+

我想查询如下: DISTINCT orderby、CONCAT状态和COUNT状态

+----------+---------------+--------------+
| orderid  | status_concat | status_count |
+----------+---------------+--------------+
| R-R34184 | 0,1,2         | 3            |
+----------+---------------+--------------+
| R-R34185 | 0             | 1            |
+----------+---------------+--------------+

我尝试了几个代码、任何子查询、分组,但没有组合在一起。 如果有人可以提供帮助,谢谢。

【问题讨论】:

  • 考虑处理应用代码中数据显示的问题

标签: mysql sql count distinct group-concat


【解决方案1】:

这只是聚合函数group_concat()count() 中的group bydistinct

select orderid, 
    group_concat(distinct status order by status) status_concat, 
    count(distinct status) status_count
from mytable
group by orderid

【讨论】:

  • 谢谢,没关系:)
【解决方案2】:

我想你想要distinct:

select orderid, group_concat(distinct status order by status), count(distinct status)
from t
group by orderid;

【讨论】:

    猜你喜欢
    • 2016-11-18
    • 2015-02-21
    • 1970-01-01
    • 2013-09-21
    • 2011-03-06
    • 2016-04-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多