Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQl。您将如何编写此查询_Mysql_Sql_Database - Fatal编程技术网

MySQl。您将如何编写此查询

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

我当前的查询没有返回正确的值。我的数据库充满了日志,每个日志都包含一个代码。我正在寻找4个具体的代码,比如(100200300400)

我需要知道某个会话id只激活了1个代码、2个代码、3个代码以及所有4个代码的次数

查询将运行4次,每次使用不同的参数(1,2,3,4)


因此,如果存在一个日志,其中每个代码都具有相同的会话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,你说得对,那肯定会很有帮助!:)我将编辑上面的内容。