我有一个MySQL数据库,其中包含对我的服务器进行的每个API调用。此表用于各种分析。该表的结构如下:
---------------------------------------------
| user_id | api_call_time | app_version |
---------------------------------------------
1 | 2014-09-11 09:25:04 | v1
2 | 2014-09-11 09:26:06 | v1
1 | 2014-09-11 09:27:04 | v2
我试图找出哪些用户已经切换到新版本(即哪些用户的app_version
列中至少有一条v2
记录。我尝试了两种方法,一种是搜索WHERE app_version = 'v2'
,另一种是使用SELECT MAX(api_call_time),app_version FROM...
,但在这两种情况下都没有选择正确的结果。
查找哪些用户拥有包含app_version = v2
的记录的最佳方法是什么?
如果我理解你的话。我认为这个查询可以帮助你:
编辑:
select count(user_id) as count,user_id from you_table where app_version = 'v2' group by user_id
此查询将返回具有user_id和user_id计数的一行,其中app_version=v2
thins查询将显示使用'v2'
:多次调用并在列表中调用的用户
select user_id , count(app_version)
from table_name
where user_id in (select user_id from table_name where app_version='v2')
group by user_id
having count(app_version) >1