SQL临时向返回的结果集添加了Count列
下面的代码将两个不同的表连接在一起,并提供所需的离散数据列。问题是我还需要一个列来统计另一个表中的另一个实例。请参见select语句附近的指针引用SQL临时向返回的结果集添加了Count列,sql,count,oracle-sqldeveloper,Sql,Count,Oracle Sqldeveloper,下面的代码将两个不同的表连接在一起,并提供所需的离散数据列。问题是我还需要一个列来统计另一个表中的另一个实例。请参见select语句附近的指针引用 SELECT //count(of records returned from below query and duplicates of those found in outc table), outage_duration.dgroup, outage_duration.cause, outage_duration.cdts
SELECT
//count(of records returned from below query and duplicates of those found in outc table),
outage_duration.dgroup,
outage_duration.cause,
outage_duration.cdts,
outage_duration.cust_minutes,
outage_duration.evntnum,
outage_duration.num_cust,
outage_duration.outage_type,
outage_duration.substation,
outage_duration.feeder,
outage_duration.out_minutes
FROM outage_duration,
aeven
WHERE outage_duration.evntnum = aeven.num_1
AND aeven.outage_type = 'T'
AND aeven.cdts >= '20110101060000UT'
AND aeven.curent = 'T'
AND aeven.open_and_curent = 'F'
AND aeven.ag_id NOT IN ('MEMT','MTRRDR','MTRTECH','GRDLT','FSRSR','ELECOPS','AMS','REVSEC')
AND outage_duration.out_minutes >= '240'
AND outage_duration.curent = 'T'
GROUP BY outage_duration.dgroup, outage_duration.cause, outage_duration.cdts, outage_duration.cust_minutes, outage_duration.evntnum, outage_duration.num_cust, outage_duration.outage_type, outage_duration.substation, outage_duration.feeder, outage_duration.out_minutes
ORDER BY outage_duration.evntnum
样本AEVEN,大修持续时间表
num_1
T344490
T344410
T344480
outage_duration
T344490
T344410
这将返回T344490和T44410,这就是上面的搜索所做的。现在,有了这些结果,我需要从另一个表中获取一个计数,并将该计数作为它自己的列显示在该表中发生的事件数旁边
outc(第1列=唯一id,第2列=evntnum)
预期结果如下:
1. T344410, 5, "other columns that were specified"
2. T344490, 2, "other columns that were specified"
我如何做到这一点
SELECT
COUNT(*), --this
outage_duration.dgroup,
outage_duration.cause,
outage_duration.cdts,
outage_duration.cust_minutes,
outage_duration.evntnum,
outage_duration.num_cust,
outage_duration.outage_type,
outage_duration.substation,
outage_duration.feeder,
outage_duration.out_minutes
FROM
outage_duration
JOIN
aeven ON outage_duration.evntnum = aeven.num_1
JOIN
outc ON outage_duration.evntnum = outc. --insert column here
WHERE
AND aeven.outage_type = 'T'
AND aeven.cdts >= '20110101060000UT'
AND aeven.curent = 'T'
AND aeven.open_and_curent = 'F'
AND aeven.ag_id NOT IN ('MEMT','MTRRDR','MTRTECH','GRDLT','FSRSR','ELECOPS','AMS','REVSEC')
AND outage_duration.out_minutes >= '240'
AND outage_duration.curent = 'T'
GROUP BY outage_duration.dgroup, outage_duration.cause, outage_duration.cdts, outage_duration.cust_minutes, outage_duration.evntnum, outage_duration.num_cust, outage_duration.outage_type, outage_duration.substation, outage_duration.feeder, outage_duration.out_minutes
ORDER BY outage_duration.evntnum
只需将COUNT(*)添加到SELECT位,将表outc添加到FROM
您已经有了一个GROUP BY,所以应该在sqldeveloper中设置itn,它会在我复制粘贴时自动添加。
SELECT
COUNT(*), --this
outage_duration.dgroup,
outage_duration.cause,
outage_duration.cdts,
outage_duration.cust_minutes,
outage_duration.evntnum,
outage_duration.num_cust,
outage_duration.outage_type,
outage_duration.substation,
outage_duration.feeder,
outage_duration.out_minutes
FROM
outage_duration
JOIN
aeven ON outage_duration.evntnum = aeven.num_1
JOIN
outc ON outage_duration.evntnum = outc. --insert column here
WHERE
AND aeven.outage_type = 'T'
AND aeven.cdts >= '20110101060000UT'
AND aeven.curent = 'T'
AND aeven.open_and_curent = 'F'
AND aeven.ag_id NOT IN ('MEMT','MTRRDR','MTRTECH','GRDLT','FSRSR','ELECOPS','AMS','REVSEC')
AND outage_duration.out_minutes >= '240'
AND outage_duration.curent = 'T'
GROUP BY outage_duration.dgroup, outage_duration.cause, outage_duration.cdts, outage_duration.cust_minutes, outage_duration.evntnum, outage_duration.num_cust, outage_duration.outage_type, outage_duration.substation, outage_duration.feeder, outage_duration.out_minutes
ORDER BY outage_duration.evntnum