我想做一条判断查询,不知道能不能通过一条sql实现
例如 A表有
+------+------+--------+
| id | uid | online |
+------+------+--------+
| 1 | 1 | 13 |
| 1 | 2 | 6 |
| 2 | 3 | 23 |
| 2 | 32 | 77 |
| 5 | 5 | 33 |
| 5 | 4 | 3 |
| 3 | 30 | 83 |
| 3 | 50 | 43 |
+------+------+--------+
条件是 判断具有相同ID 的2个 UID 如果online都大于10的话
就技术+1 如果有一个不大于10 就不加。
根据条件求的结果是 2;
(因为id为1的两个uid的online其中一个不大于10,id为5的也一样 所以就不累加)
==========================
说白了就是 比如一个游戏 统计流失用户个数。例如创建一个帐号,他建了2个角色。一个角色符合流失条件,但另一个角色不符合。所以他这个帐号就不能被计算在流失用户中。
如果2个角色都符合流失条件。那么就统计起来。
哪位高手能帮帮忙,这个sql该怎么写
例如 A表有
+------+------+--------+
| id | uid | online |
+------+------+--------+
| 1 | 1 | 13 |
| 1 | 2 | 6 |
| 2 | 3 | 23 |
| 2 | 32 | 77 |
| 5 | 5 | 33 |
| 5 | 4 | 3 |
| 3 | 30 | 83 |
| 3 | 50 | 43 |
+------+------+--------+
条件是 判断具有相同ID 的2个 UID 如果online都大于10的话
就技术+1 如果有一个不大于10 就不加。
根据条件求的结果是 2;
(因为id为1的两个uid的online其中一个不大于10,id为5的也一样 所以就不累加)
==========================
说白了就是 比如一个游戏 统计流失用户个数。例如创建一个帐号,他建了2个角色。一个角色符合流失条件,但另一个角色不符合。所以他这个帐号就不能被计算在流失用户中。
如果2个角色都符合流失条件。那么就统计起来。
哪位高手能帮帮忙,这个sql该怎么写
解决方案 »
- 大数据量表 添加索引出现 the table xxx is full
- select into 自定义变量赋值问题
- 请教一个建表问题
- mysql错误“Got error 134 from storage engine”
- group by分组查前n条记录
- Error 1064 in MySql
- 请问为什么在命令行中执行sql 语句与在程序中执行速度差别极大?
- 散分!设计一下该需求下的开发架够。
- 請教:下載了 mysql4.1.0-win32-apache.zip ,解壓後發現沒有setup文件,我以前裝的mysql3.2.3安裝過後的目錄一樣,不知4.1的是如何安裝
- 怎么查询某表所有指定字符开头的数据
- mysql 行锁的问题
- Mysql在Redhat Linux 5 Server
SELECT a.id FROM ttp1a a INNER JOIN
(
SELECT id FROM (
SELECT id,uid FROM ttp1a GROUP BY id,uid ) a1 GROUP BY id HAVING COUNT(*)>=2) a3 ON a.id=a3.id
GROUP BY id
HAVING SUM(IF(online>=10,1,0))=2) a4
+-----------+
| count(id) |
+-----------+
| 2 |
+-----------+
1 row in set (0.00 sec)
from a t1 inner join a t2 on t1.id=t2.id
where t1.uid>t2.uid
and t1.online>10
and t2.online>10
from A t
WHERE not exists(select * from A where t.id=id and online<=10)
那如果1个帐号只有1个角色这种。根本都没在判断之内
from a t
where not exists (select 1 from a where id=a.id and online<10);