这是我的数据:
我想查找满足以下条件的每个日期的唯一 SessionId 的数量: 当一个sessionid中“/topic”的数量=1时,同一个sessionid中“/detail”的数量也等于1。所以对于我的情况,sessionid=1(412)是唯一满足要求的sessionid。
这是我使用的代码:(表名称是we)
SELECT count( Distinct sessionid)
from
( Select sessionid, count(search like "/topic%") as TN and Count(search like "/detail%") as DN from we GROUP BY date order by date) as my_table
WHERE TN ==1 and DN=1
很抱歉代码困惑,但它应该打印出日期 412 和日期 413 的 [1,0]。但它不起作用。有什么建议吗?非常感谢!
最佳答案
SELECT DATE,
count(Distinct sessionid)
FROM (Select sessionid,
DATE,
SUM(CASE WHEN search like '/topic%' THEN 1 ELSE 0 END) as TN,
SUM(CASE WHEN search like '/detail%' THEN 1 ELSE 0 END) as DN
from we
GROUP BY sessionid, DATE
) as my_table
WHERE TN = 1 AND DN = 1
GROUP BY DATE
关于mysql - SQL 多重选择和分组依据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36577287/