PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Permintaan Rails Postgres, memilih hanya item yang muncul di semua parameter pencarian dengan asosiasi

Anda dapat memeriksa item apa yang ada catatan untuk setiap tahun. Anda dapat melakukannya dengan memeriksa apakah jumlah tahun yang berbeda untuk setiap item sama dengan total tahun (menggunakan COUNT DISTINCT ):

 number_years = params[:end_year].to_i - params[:start_year].to_i + 1
 @sale_averages = Sale.joins(:shops, :items)
                      .select('items.name, AVG(sale.price) as price')
                      .where("EXTRACT(year from season_year) BETWEEN #{params[:start_year]} AND #{params[:end_year]}")
                      .where('shops.name': params[:select_shop])
                      .group('items.name')
                      .having("(COUNT(DISTINCT(EXTRACT(year from season_year))) = #{number_years})")

Saya juga telah menggunakan BETWEEN bukannya < dan > .Saya pikir Anda ingin mengelompokkan berdasarkan nama item daripada toko (seperti pada kueri awal Anda).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL dan QSqlQuery.bindValue() lambat

  2. Menyimpan output dari kueri dinamis yang menggunakan pernyataan persiapan ke dalam tabel

  3. Tidak dapat menemukan pustaka klien PostgreSQL (libpq)

  4. Kesalahan:INTO ditentukan lebih dari sekali pada atau di dekat INTO

  5. Postgresql :Bagaimana cara memilih entri n persen (%) teratas dari setiap grup/kategori?