MySQl。您将如何编写此查询
我当前的查询没有返回正确的值。我的数据库充满了日志,每个日志都包含一个代码。我正在寻找4个具体的代码,比如(100200300400) 我需要知道某个会话id只激活了1个代码、2个代码、3个代码以及所有4个代码的次数 查询将运行4次,每次使用不同的参数(1,2,3,4)MySQl。您将如何编写此查询,mysql,sql,database,Mysql,Sql,Database,我当前的查询没有返回正确的值。我的数据库充满了日志,每个日志都包含一个代码。我正在寻找4个具体的代码,比如(100200300400) 我需要知道某个会话id只激活了1个代码、2个代码、3个代码以及所有4个代码的次数 查询将运行4次,每次使用不同的参数(1,2,3,4) 因此,如果存在一个日志,其中每个代码都具有相同的会话id,当我运行4的查询时,该id将为+1。以下是一种方法,您可以在一次过程中获得所有四个计数: SELECT codecount, COUNT(*) AS sessioncou
因此,如果存在一个日志,其中每个代码都具有相同的会话id,当我运行4的查询时,该id将为+1。以下是一种方法,您可以在一次过程中获得所有四个计数:
SELECT codecount, COUNT(*) AS sessioncount
FROM (
SELECT session_id, COUNT(DISTINCT code) AS codecount
FROM log
WHERE code IN (100, 200, 300, 400)
GROUP BY session_id
) AS c
GROUP BY codecount;
OP说他们想要一个计数的计数——多少个会话有一定数量的匹配。所以codecount的范围是1-4,sessioncount是每个会话匹配了多少代码小计。难道不需要将
codecount
也添加到主SELECT子句中吗?@AndriyM,你说得对,那肯定会很有帮助!:)我将编辑上面的内容。