MySQL使用数据分组和计数行
我有一个表格,里面有各种各样的数据。我想要实现的是,我希望在数据库中运行一个查询,查找数量相等且内容相同的行,例如,列的id为1,有3行,列的id为5,有3行,所有这些值都相同。我想 考虑一下,作为一个组,然后计算它们是多少。具有不同ID但值相同的行。然后有一个表,显示找到x个匹配项的计数,并包含this+this+this值。这是MySQLMySQL使用数据分组和计数行,mysql,Mysql,我有一个表格,里面有各种各样的数据。我想要实现的是,我希望在数据库中运行一个查询,查找数量相等且内容相同的行,例如,列的id为1,有3行,列的id为5,有3行,所有这些值都相同。我想 考虑一下,作为一个组,然后计算它们是多少。具有不同ID但值相同的行。然后有一个表,显示找到x个匹配项的计数,并包含this+this+this值。这是MySQL id | drug -------------- 1 | LAMIVUDINE ---------------- 1 | ZIDOVUDINE
id | drug
--------------
1 | LAMIVUDINE
----------------
1 | ZIDOVUDINE
----------------
1 | 3TC
----------------
3 | TTC
-------------
4 | KKY
------------
4 | JJ2
-------------
4 | FFF
---------------
5 | LAMIVUDINE
----------------
5 | ZIDOVUDINE
-----------------
5 | 3TC
------------------
8 | KKY
----------------
8 | JJ2
--------------
8 | FFF
---------------
将(id)计数为数字
药名
number | name
-------------------------------------
2 | LAMIVUDINE + ZIDOVUDINE + 3TC
---------------------------------------
2 | KKY + JJ2 + FFF
--------------------------------------`
1 | TTC
---------------------------------------
您可以使用
group\u concat
和+
分隔符来连接具有相同id的行,然后对连接的值执行另一个group by以获得所需的输出
select count(*) number, names
from (
select count(*) total, group_concat(drug order by drug separator '+') names
from table1
group by id
) t
group by names
Order by子句在group by中很重要,因此连接的字符串值的顺序应该相同