按不同行中的两列是否具有相同的值进行分组?

时间:2019-08-21 06:10:20

标签: php mysql laravel eloquent

我想对column1进行分组,然后对其进行计数。现在,如果column1和column2在另一行中具有相同的值,则它将仅计为一个

示例表

column1  column2
2        4
1        1
1        1
3        4
2        4
3        1
1        3

示例输出

column1  column2  count
2        4        1
1        3        2
3        4        2

您会看到column1中的2仅计为1,因为column2在其他行中也相同。

如何在mysql或雄辩的查询中做到这一点?

3 个答案:

答案 0 :(得分:1)

您可以在下面尝试-它将在mysql中工作

select column1,max(column2),count(distinct column2)
from tablename
group by column1

答案 1 :(得分:1)

您可以尝试查询:

select t.column1, t.column2, count(*) as count from (
  select column1, column2 from mytables group by column1, column2
  order by column2 desc
) as t
group by t.column1

然后显示结果

enter image description here

答案 2 :(得分:1)

似乎您需要计数不同的column1,max(column2)

select column1, max(column2), count(*) 
from (
  select distinct column1, column2 
  from my_table  
) t  
group by  column1