Sql 对包含条件的select distinct进行计数
今天我要为学校的航班数据库写一个查询。但现在我被困住了,因为我不知道如何继续下去。我需要选择已经完成1000次或更多航班的航空公司。由于我们是如何构建数据库的,我必须这样做:Sql 对包含条件的select distinct进行计数,sql,oracle,Sql,Oracle,今天我要为学校的航班数据库写一个查询。但现在我被困住了,因为我不知道如何继续下去。我需要选择已经完成1000次或更多航班的航空公司。由于我们是如何构建数据库的,我必须这样做: SELECT DISTINCT a.nombre, a.codigo, count ( select distinct o.salida_prevista,
SELECT DISTINCT a.nombre,
a.codigo,
count
(
select distinct o.salida_prevista,
o.fecha,
o.identificador
FROM operacion o
WHERE EXISTS
(
SELECT DISTINCT v.identificador,
v.codigo_aerolinea
FROM vuelo v
WHERE v.identificador = o.identificador
AND v.codigo_aerolinea = a.codigo)) AS numflights
FROM aerolinea a
WHERE numflights > 1000;
但我无法让计数正常工作,它只会向我抛出一个语法错误。我怎样才能让这个计数起作用?
提前谢谢你!:
编辑:创建表
CREATE TABLE Aerolinea (
codigo_aerolinea VARCHAR(10) CONSTRAINT PK_Aerolinea PRIMARY KEY,
nombre VARCHAR(75) CONSTRAINT NN_nombre_aerolinea NOT NULL);
CREATE TABLE Vuelo (
identificador NUMBER CONSTRAINT PK_Vuelo PRIMARY KEY,
IATA_origen VARCHAR(6),
IATA_destino VARCHAR(6),
codigo_aerolinea VARCHAR(10),
codigo VARCHAR(6) CONSTRAINT NN_codigo_vuelo NOT NULL,
CONSTRAINT FK_IATA_origen FOREIGN KEY (IATA_origen) REFERENCES Aeropuerto(IATA)
ON DELETE CASCADE,
CONSTRAINT FK_IATA_destino FOREIGN KEY (IATA_destino) REFERENCES Aeropuerto(IATA)
ON DELETE CASCADE,
CONSTRAINT FK_codigo_aerolinea FOREIGN KEY (codigo_aerolinea) REFERENCES Aerolinea(codigo)
ON DELETE CASCADE);
CREATE TABLE Operacion(
identificador NUMBER,
fecha DATE CONSTRAINT NN_fecha NOT NULL,
salida_prevista NUMBER,
salida_real NUMBER,
llegada_prevista NUMBER CONSTRAINT NN_llegada_prevista NOT NULL,
llegada_real NUMBER,
numero_cola VARCHAR(6),
CONSTRAINT PK_Operacion PRIMARY KEY (salida_prevista, fecha, identificador),
CONSTRAINT FK_op_vuelo FOREIGN KEY (identificador) REFERENCES Vuelo(identificador)
ON DELETE CASCADE,
CONSTRAINT FK_op_numero_cola FOREIGN KEY(numero_cola) REFERENCES Nave(numero_cola)
ON DELETE CASCADE);
不确定运营的职责是什么 但看起来只是需要加入
SELECT a.nombre,
a.codigo
FROM aerolinea a
JOIN vuelo v
ON a.codigo = v.codigo_aerolinea
JOIN operations o
ON o.identificador = v.identificador
GROUP BY a.nombre, a.codigo
HAVING COUNT(*) > 1000
向我们显示数据库模式、示例数据、当前和预期输出。请阅读,这里是学习如何提高问题质量和获得更好答案的好地方。尝试在错误消息中创建一个示例?@JuanCarlosOropeza它告诉我参数的数量无效。对不起,如果问题不够精确。我想上传表创建文件,但它太大了,我不知道如何上传。问题是您无法进行计数选择*如果您提供一些示例数据,我们可以帮助您编写查询。以这个问题为例,如果不这样做,我怎么能拥有相同的功能?谢谢你的快速回答。我添加了操作表。不确定在哪里/如果您需要distrinctSorry,我应该在哪里按a.nombre执行SELECT*order?再次检查回答它在第1行告诉我错误:没有单个组函数。对不起,打扰你了对不起,我忘了分组