1、创建测试表,
create table test_person(id int, RMB int)
2、插入测试数据
insert into test_person values(1,180)
insert into test_person values(2,170)
insert into test_person values(3,290)
insert into test_person values(4,160)
insert into test_person values(5,299)
insert into test_person values(6,266)
insert into test_person values(7,155)
3、查询表中所有记录,select t.* from test_person t,
4、编写sql,汇总每个vip类型的用户数,
select vip_type, count(distinct id)
from (select case when RMB>100 and RMB<200 then 'VIP1' when RMB>200 then 'VIP2' end as vip_type, id
from test_person) t
group by vip_type
1、首先,在一个查询中的查询结果作为外层查询的条件,可以用IN关键字,代码如下图所示。
2、其次,外层查询的条件不在内层查询结果,可以用NOT IN关键字,代码如下所示。
3、使用EXISTS关键字查询时,内层查询语句不返回查询的记录,而是返回一个Boolean值;当内层查询返回的值为true时,外层查询语句将进行查询,如果返回false时,将不进行查询或查询结果为空,代码如下所示。
4、由第三步可知,与EXISTS相对的是NOT EXISTS,当内层查询返回的值为false时,外层查询语句将进行查询,如果返回true时,将不进行查询或查询结果为空,代码如下。
5、满足其中的任一条件,就可以通过该条件来执行外层查询语句,用关键字ANY,代码如下。
6、满足所有条件,只有满足内层查询语句返回所有结果,代码如下所示,就完成了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)