Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ingres SQL中的多个聚合_Sql_Ingres - Fatal编程技术网

Ingres SQL中的多个聚合

Ingres SQL中的多个聚合,sql,ingres,Sql,Ingres,我有一张分为学年的大桌子 sch_year_id i4 name c20 addr1 c20 teacher c20 etc. etc.. schu year_id是一个整数,23代表13/14学年,24代表14/15学年,以此类推 因此,通常有数千条记录具有相同的schu-year-id,但针对不同的儿童 我想知道包含最多记录的最新(即最大)sch_year_id,但仅当该sch_year_id的记录数超过5000时 我可以得到一个清单,这使用一个小组,并有如下 select sch_ye

我有一张分为学年的大桌子

sch_year_id i4
name c20
addr1 c20
teacher c20

etc. etc..
schu year_id是一个整数,23代表13/14学年,24代表14/15学年,以此类推

因此,通常有数千条记录具有相同的schu-year-id,但针对不同的儿童

我想知道包含最多记录的最新(即最大)sch_year_id,但仅当该sch_year_id的记录数超过5000时

我可以得到一个清单,这使用一个小组,并有如下

select sch_year_id, count(*)
from table
group by sch_year_id
having count(*) > 5000
这个返回大约10个结果,不同的学年,但是我想要这个结果集的最大值(sch_year_id)。如果我在SELECT中的sch_year_id周围添加一个max函数,则结果不会发生任何变化

我可以用一个派生表来完成它,如下所示

select max(a.sch_year_id)
from (select sch_year_id, count(*)
from table
group by sch_year_id
having count(*) > 5000) a

或者使用CTE,但我觉得一定有一种方法可以不用这个

我相信安格尔,你可以先使用

select first 1 sch_year_id
from t
group by sch_year_id
having count(*) > 5000
order by sch_year_id desc;

我相信安格尔,你可以先使用

select first 1 sch_year_id
from t
group by sch_year_id
having count(*) > 5000
order by sch_year_id desc;

我想你可以用一个窗口功能来做这件事——这就是你要问的吗?仍然需要子查询,所以只有在进行分区时才有用——我想您可以使用窗口功能来实现它——这就是您要问的吗?仍然需要子查询,因此只有在执行分区时才有用,因为该查询返回错误“Column”first“未在任何指定表中找到”,但“select first 1”或“top 1”有效。它不喜欢没有指定数字的“first”!谢谢@本汉密尔顿。是的,这个数字对于这个语法来说非常重要。干杯。当我最初阅读您的答案时,我想知道您是否可以说“选择第一列1”,它会知道您只需要第一列,但不需要,它需要数字。该查询返回错误“列“first”未在任何指定表中找到”,但“选择第一列1”或“top 1”有效。它不喜欢没有指定数字的“first”!谢谢@本汉密尔顿。是的,这个数字对于这个语法来说非常重要。干杯。当我最初读到你的答案时,我想知道你是否可以说“选择第一个col1”,它会知道你只想要第一个,但不,它想要的是号码。