基于另一列mysql的一列的不同值

时间:2017-06-13 09:01:16

标签: mysql sql

表格结构

Column1 | Column2 | Column 3 | Column 4 . . .. .  Column N

Col1Val1    | Col2Val2    |  . . . . . 
Col1Val1    | Col2Val2    | . . . ..
Col1Val1    | Col2Val3    | . . . . 
Col1Val2    | Col2Val4    | .  . .
Col1Val3    | Col2Val5    | . . 
Col1Val3    | Col2Val6    | . .. 

我想查询column2的所有不同值,以获取column1的每个不同值及其count&值

示例输出应为:

Col1Val1 | Col2Val2,Col2Val3 | 2
Col1Val2 | Col2Val4          | 1
Col1Val3 | Col2Val5,Col2Val6 | 2
.
.

这在查询+应用程序处理方面非常可行。
只能通过sql查询实现此/类似输出。

2 个答案:

答案 0 :(得分:2)

您可以使用GROUP_CONCAT()汇总并计算不同的Column2值:

SELECT
    Column1,
    GROUP_CONCAT(DISTINCT Column2),
    COUNT(DISTINCT Column2)
FROM yourTable
GROUP BY Column1

<强>输出:

enter image description here

在这里演示:

Rextester

答案 1 :(得分:1)

试试这个。

select Column1 , group_concat(distinct column2) ,count(distinct column2)
from your_table 
group by column1