如何修改sql查询以仅在出现次数大于3时显示其他信息?
在中,该解决方案显示了如何计算每个唯一ancid的desid出现次数。如何修改问题的解决方案,使其提供有关大于3的计数的额外信息 例如,如果我的表结构如下:如何修改sql查询以仅在出现次数大于3时显示其他信息?,sql,Sql,在中,该解决方案显示了如何计算每个唯一ancid的desid出现次数。如何修改问题的解决方案,使其提供有关大于3的计数的额外信息 例如,如果我的表结构如下: create table mytable ( desid bigint not null, ancid bigint not null ); insert into mytable (ancid,desid) values (1,10); insert into mytable (ancid,desid) values
create table mytable (
desid bigint not null,
ancid bigint not null
);
insert into mytable (ancid,desid) values (1,10);
insert into mytable (ancid,desid) values (1,20);
insert into mytable (ancid,desid) values (1,21);
insert into mytable (ancid,desid) values (1,22);
insert into mytable (ancid,desid) values (2,30);
insert into mytable (ancid,desid) values (3,40);
insert into mytable (ancid,desid) values (3,41);
insert into mytable (ancid,desid) values (3,42);
insert into mytable (ancid,desid) values (3,43);
create table desinfo (
desid bigint not null,
age bigint not null,
size bigint not null
);
insert into desinfo (desid, age, size) (10, 22, 100);
insert into desinfo (desid, age, size) (20, 23, 101);
insert into desinfo (desid, age, size) (21, 24, 102);
insert into desinfo (desid, age, size) (22, 25, 103);
insert into desinfo (desid, age, size) (30, 26, 104);
insert into desinfo (desid, age, size) (40, 27, 105);
insert into desinfo (desid, age, size) (41, 28, 106);
insert into desinfo (desid, age, size) (42, 29, 107);
insert into desinfo (desid, age, size) (43, 30, 108);
从的解决方案中,我们可以运行以下查询:
SELECT ancid, COUNT(*)
FROM mytable
GROUP BY ancid
这给了我一个输出,比如:
4 rows with ancid=1
1 rows with ancid=2
4 rows with ancid=3
如何修改查询以获取有关desid计数>3的其他信息。例如,ancsid=1和ancsid=3的4个设计我想要年龄和尺寸属性。您可以使用分析函数count,如下所示:
select * from
(SELECT t.*, COUNT(*) over (partition by ancid) as cnt
FROM mytable t ) t
where cnt > 3
我想我要找的是:从desinfo中选择*其中desid在select desid from select t.*中,按ancid将*计算为我的表t中的cnt,其中cnt>3,但我会给你评分,因为你非常接近。