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()
聚合添加到选择列表中。