gpt4 book ai didi

MySql 查询计数和基于范围分配常量

转载 作者:行者123 更新时间:2023-11-30 23:05:22 25 4
gpt4 key购买 nike

有一张 table

成员:
id - 成员(member)编号,
dt_activate - 成员的加入 unix 日期时间,
id_inviter - 邀请当前成员的成员 ID(如果成员自己加入则为 0)

尝试编写一个将返回以下多行结果的 Select,其中每行将包含:
(1) id - 成员(member)id;
(2) cnt - MEMBERS 表中此“id”出现在 id_inviter 字段中且同时 dt_activate 应介于常量 dt_start 和 dt_end 之间的行数;
(3) img - 如果 cnt 在 10-19 之间,则为“imageA.gif”,如果在 20-29 之间,则为“imageB.gif”,如果大于 29,则为“imageC.gif”;
(4) reward - 常量X如果cnt在10-19之间,Y如果在20-29之间,Z如果大于29

不幸的是,我的知识不允许我超越简单的选择,例如:

SELECT id_inviter, sum(1) AS cnt
FROM members
WHERE dt_activate>=$dt_start AND dt_activate<=$dt_end
GROUP BY id_inviter
HAVING cnt>=10

MEMBERS 表的估计记录数可能在 10-50k 之间。

请帮助实现上述结果,谢谢。

最佳答案

试试这个:

SELECT id_inviter, count (*) AS cnt, 
case when count (*) <20 then 'imageA.gif'
when count (*) <30THEN 'imageB.gif' else 'imageC.gif' end as image,
case when count (*) <20 then 'X'
when count (*) <30 THEN 'Y' else 'Z' end as reward
FROM members
WHERE dt_activate>=$dt_start AND dt_activate<=$dt_end
GROUP BY id_inviter
HAVING cnt>=10

关于MySql 查询计数和基于范围分配常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22149270/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com