select 每行后的行与 if 条件
select rows after each row with if condition
首先抱歉英语不好!
二 我有一个 table 有许多记录 >5000 具有以下结构
id | uid | uam(user after me) | plan
-------------------------------------
1 | 4 | 4 | 1
-------------------------------------
2 | 4 | 3 | 2
-------------------------------------
3 | 4 | 1 | 2
-------------------------------------
4 | 4 | 9 | 1
-------------------------------------
5 | 4 | 6 | 1
-------------------------------------
6 | 4 | 2 | 2
-------------------------------------
7 | 4 | 1 | 1
-------------------------------------
8 | 4 | 3 | 2
-------------------------------------
现在我想要 select 来自这个 table 和下面的 if/condition
select 行,其中 uam(我之后的用户)<= 在同一计划的这一行之后的计数行。换句话说,我们希望用户在达到uam数量后,有相同的计划和用户数量。
对于这个例子 table 应该是 return ids : 2, 3
如何使用 sql 或更好地使用 codeigniter 活动记录?
感谢您的帮助:)
对于每条记录,您需要检查后续记录的总和是否大于或等于该特定记录的 uam
。
在 EXISTS
的帮助下,您可以做到这一点:
SELECT
*
FROM uamtable A
WHERE EXISTS (
SELECT
1
FROM uamtable B
WHERE A.ID < B.ID AND A.plan = B.plan
HAVING COUNT(*) >= A.uam
)
注:
A.ID < B.ID
约束强制仅计算具有相同计划的后续记录。
首先抱歉英语不好! 二 我有一个 table 有许多记录 >5000 具有以下结构
id | uid | uam(user after me) | plan
-------------------------------------
1 | 4 | 4 | 1
-------------------------------------
2 | 4 | 3 | 2
-------------------------------------
3 | 4 | 1 | 2
-------------------------------------
4 | 4 | 9 | 1
-------------------------------------
5 | 4 | 6 | 1
-------------------------------------
6 | 4 | 2 | 2
-------------------------------------
7 | 4 | 1 | 1
-------------------------------------
8 | 4 | 3 | 2
-------------------------------------
现在我想要 select 来自这个 table 和下面的 if/condition
select 行,其中 uam(我之后的用户)<= 在同一计划的这一行之后的计数行。换句话说,我们希望用户在达到uam数量后,有相同的计划和用户数量。
对于这个例子 table 应该是 return ids : 2, 3
如何使用 sql 或更好地使用 codeigniter 活动记录? 感谢您的帮助:)
对于每条记录,您需要检查后续记录的总和是否大于或等于该特定记录的 uam
。
在 EXISTS
的帮助下,您可以做到这一点:
SELECT
*
FROM uamtable A
WHERE EXISTS (
SELECT
1
FROM uamtable B
WHERE A.ID < B.ID AND A.plan = B.plan
HAVING COUNT(*) >= A.uam
)
注:
A.ID < B.ID
约束强制仅计算具有相同计划的后续记录。