MySQl。你会如何写这个查询

标签 mysql sql database

我当前的查询未返回正确的值。我的数据库充满了日志,每个日志都包含一个代码。我正在寻找 4 个代码,例如(100、200、300、400)。

我需要知道某个session_id只激活了1个代码、2个代码、3个代码以及全部4个代码有多少次。

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

因此,如果每个代码的日志都具有相同的 session_id,那么当我运行 4 的查询时,该日志将+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;

关于MySQl。你会如何写这个查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19148877/

相关文章:

mysql - errno 150 mySQL 外键

sql - 如何计算 Microsoft Access SQL 查询中的连续日期?

java - 如何使用 Java 连接到基于 Web 的 Oracle 数据库?

sql - MS Access 中的简单 SQL COUNT 查询

php - 如何在数据库和 Cookie 中存储密码 (PHP/MySQL)

mysql - 整数值的 SQL 全文搜索解决方法

php - Zend pgsql 连接错误

javascript - 检查MySQL是否仍然连接或断开

php - 得到减去当前 Y-m 后的月数

mysql - 更正具有相似 attendeeNames 和的记录