Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Bisakah saya mengelompokkan dalam kueri SQL dengan fungsi jendela?

Hal pertama yang harus diingat adalah fungsi berjendela (seperti OVER() klausa) bekerja pada hasil kueri. Yaitu:Server pertama-tama mengeksekusi kueri dan baru kemudian menerapkan fungsi berjendela seperti yang Anda definisikan.

Ini berarti bahwa Anda sebenarnya dapat menggunakan fungsi berjendela dan mengelompokkan demi klausa dalam kueri yang sama, tetapi Anda perlu merangkumnya, seperti ini:

SELECT department_id,
       min(min(salary)) OVER (partition by department_id) as minsalary
FROM employees
GROUP BY department_id;

Namun, saya setuju bahwa ini bukan tempat yang baik untuk menggunakan fungsi berjendela. Proposisi Matt adalah yang terbaik di sini (ROW_NUMBER() di CTE atau subquery , lalu pilih hanya baris yang diinginkan di SELECT main utama ).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. apa pandangan terwujud di oracle?

  2. Oracle mengurangkan hari dan menit

  3. Indeks TANGGAL Oracle

  4. Manajer Konkuren Oracle

  5. sqlplus - menggunakan variabel ikat dalam klausa IN