列を検査する必要があるSQL問合せの最初の(または最後の)行を取得しようとしています。実際はcount()の結果になります。Count()の値をチェックしている場合、Oracle SQLの最初の行または最後の行を取得する方法
私は彼らを見つけるためにいくつかの回避策を見つけることができますが、インデクサーと情報が繰り返されていないときに、それが繰り返されます。この繰り返しでは、私は3つの値を受け取りますつまり、私は2の代わりに4行を受け取っています。
誰も2行を切り捨てて1つだけを選択する方法を知っていましたか?ここで
は、コードは次のとおりです。事前に
Create view TotalEmpleadosPorDepto as
Select DEPARTMENT_NAME DEPARTAMENTO, count(EMPLOYEE_ID) TOTAL_EMPLEADOS
from DEPARTMENTS join EMPLOYEES USING(DEPARTMENT_ID)
group by DEPARTMENT_NAME
order by DEPARTMENT_NAME;
select TotalEmpleadosPorDepto.DEPARTAMENTO "DEPARTAMENTO",
TotalEmpleadosPorDepto.TOTAL_EMPLEADOS "TOTAL EMPLEADOS"
from TotalEmpleadosPorDepto
where TotalEmpleadosPorDepto.TOTAL_EMPLEADOS =
(select Max (TOTAL_EMPLEADOS) from TotalEmpleadosPorDepto)
or
TotalEmpleadosPorDepto.TOTAL_EMPLEADOS =
(select FIRST_VALUE(min (TOTAL_EMPLEADOS)) from TotalEmpleadosPorDepto)
order by DEPARTAMENTO;
おかげ
PS:質問を改善するために、任意の質問、提案やコメントを大幅にapreciatedされるだろう。
最初または最後の行はどういう意味ですか? count(EMPLOYEE_ID)の値の最大値または最小値を持つ行?最大(または最小)の従業員数のために2つ以上の部門が結ばれている場合は、どのような選択が必要ですか? – mathguy
小さな例を追加すると助けになるでしょう:ここでは部署とその数がここに現在の出力です、ここで私のニーズに合っていない理由はここにあります。これは、問題を説明するためのちょっとした構成例です。 – mathguy