Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Klausa Setara GrupBy dan Memiliki dalam Aljabar Relasional

Perhatikan bahwa Anda ingin mendapatkan jumlah gaji, di Tutorial D :

SUMMARIZE emp BY { job } ADD ( SUM ( sal ) AS total_sal )

Agregasi not bukanlah operator relasional, oleh karena itu tidak akan menjadi bagian dari aljabar relasional.

Adapun HAVING , apakah itu anomali sejarah. Sebelum Standar SQL-92, tidak mungkin menulis SELECT ekspresi dalam FROM klausa (alias tabel turunan) yaitu Anda harus melakukan semua pekerjaan dalam satu SELECT ekspresi. Karena urutan evaluasi SQL yang kaku, nilai agregat tidak muncul setelah WHERE klausa telah dievaluasi yaitu tidak mungkin menerapkan pembatasan berdasarkan nilai agregat. HAVING diperkenalkan untuk mengatasi masalah ini.

Tetapi bahkan dengan HAVING , SQL tetap tidak lengkap secara relasional sehubungan dengan Codd sampai tabel turunan diperkenalkan. Tabel turunan dirender HAVING berlebihan tetapi menggunakan HAVING masih populer (jika Stackoverflow adalah segalanya):folk sepertinya masih suka menggunakan SELECT tunggal jika memungkinkan dan kekakuan SQL yang disebutkan di atas sehubungan dengan urutan evaluasi (proyeksi dilakukan terakhir dalam SELECT ekspresi) membuat penggunaan tabel turunan cukup bertele-tele jika dibandingkan dengan HAVING .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara membatasi akses ke aplikasi web hanya untuk satu mesin?

  2. Bagaimana melakukan pemuatan satu kali untuk 4 miliar catatan dari MySQL ke SQL Server

  3. Kolom bersyarat untuk kueri berdasarkan kolom lain di MySQL

  4. SQL Query untuk mengembalikan maksimum selama beberapa dekade

  5. varchar(255) v tinyblob v tinytext