Mysql 计算SQL中不同列的数目

Mysql 计算SQL中不同列的数目,mysql,sql,Mysql,Sql,假设我有以下疑问: SELECT DISTINCT(Value1,value2,value3) From table1 然后得到类似于 # value1 value2 value3 -------------------------------------- 1. result1 result1 result2 2. result1 result2 result2 3. result5 result6 result7

假设我有以下疑问:

SELECT DISTINCT(Value1,value2,value3) From table1
然后得到类似于

        #   value1  value2  value3
--------------------------------------
        1.  result1 result1 result2
        2.  result1 result2 result2
        3.  result5 result6 result7
如何添加一个额外的列来告诉我该值的唯一组合出现了多少次,例如(最后一列是它出现的次数):

使用a而不是
不同的
。然后您可以使用
count

select value1, value2, value3, count(*) as occurred
from table1
group by value1, value2, value3;
SQLite中的演示

sqlite> select * from table1 order by value1, value2, value3;
value1      value2      value3    
----------  ----------  ----------
1           1           2         
1           1           2         
1           2           2         
1           2           2         
1           2           2         
5           6           7         

sqlite> select value1, value2, value3, count(*) as '#occurred' from table1 group by value1, value2, value3;
value1      value2      value3      #occurred 
----------  ----------  ----------  ----------
1           1           2           2         
1           2           2           3         
5           6           7           1         
使用a而不是
不同的
。然后您可以使用
count

select value1, value2, value3, count(*) as occurred
from table1
group by value1, value2, value3;
SQLite中的演示

sqlite> select * from table1 order by value1, value2, value3;
value1      value2      value3    
----------  ----------  ----------
1           1           2         
1           1           2         
1           2           2         
1           2           2         
1           2           2         
5           6           7         

sqlite> select value1, value2, value3, count(*) as '#occurred' from table1 group by value1, value2, value3;
value1      value2      value3      #occurred 
----------  ----------  ----------  ----------
1           1           2           2         
1           2           2           3         
5           6           7           1         

使用
count(*)
按这三列分组。请注意
distinct
不是一个函数。相反,
distinct
会改变
select
的行为。将其视为
选择不同的
,而不是
选择所有
,而不是选择要选择的列。你不应该在它周围加上括号,这是一些非标准的MySQL东西。
DISTINCT
是一个应用于整个表达式列表的关键字,它不是一个函数。帕伦夫妇不是必要的。无关的paren不是无效的,但是没有理由包含它们。在
vkp
注释中,删除
DISTINCT
关键字,添加
groupby
子句,并将
COUNT()
聚合添加到选择列表中。使用
COUNT(*)
按这三列分组。注意
DISTINCT
不是函数。相反,
distinct
会改变
select
的行为。将其视为
选择不同的
,而不是
选择所有
,而不是选择要选择的列。你不应该在它周围加上括号,这是一些非标准的MySQL东西。
DISTINCT
是一个应用于整个表达式列表的关键字,它不是一个函数。帕伦夫妇不是必要的。无关的paren不是无效的,但是没有理由包含它们。在
vkp
注释中,删除
DISTINCT
关键字,添加
groupby
子句,并将
COUNT()
聚合添加到选择列表中。