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

Kolom tidak dikenal di subquery mysql

Saya bukan ahli MySQL (dalam MS SQL itu bisa dilakukan lebih mudah), dan pertanyaan Anda terlihat agak tidak jelas bagi saya, tetapi sepertinya Anda mencoba mendapatkan rata-rata dari 5 item sebelumnya.

Jika Anda memiliki Id tanpa celah , mudah kok:

select
    p.id,
    (
        select avg(t.deposit)
        from products as t
        where t.itemid = 1 and t.id >= p.id - 5 and t.id < p.id
    ) as avgdeposit
from products as p
where p.itemid = 1
order by p.id desc
limit 15

Jika tidak , maka saya sudah mencoba melakukan kueri ini seperti ini

select
    p.id,
    (
        select avg(t.deposit)
        from (
            select tt.deposit
            from products as tt
            where tt.itemid = 1 and tt.id < p.id
            order by tt.id desc
            limit 5
        ) as t
    ) as avgdeposit
from products as p
where p.itemid = 1
order by p.id desc
limit 15

Tapi saya punya pengecualian Unknown column 'p.id' in 'where clause' . Sepertinya MySQL tidak dapat menangani 2 tingkat subkueri bersarang. Tetapi Anda bisa mendapatkan 5 item sebelumnya dengan offset , seperti ini:

select
    p.id,
    (
        select avg(t.deposit)
        from products as t
        where t.itemid = 1 and t.id > coalesce(p.prev_id, -1) and t.id < p.id
    ) as avgdeposit
from 
(
    select
        p.id,
        (
            select tt.id
            from products as tt
            where tt.itemid = 1 and tt.id <= p.id
            order by tt.id desc
            limit 1 offset 6
        ) as prev_id
    from products as p
    where p.itemid = 1
    order by p.id desc
    limit 15
) as p

demo biola sql



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Buat tabel MySQL dengan variabel PHP

  2. Bagaimana cara memasukkan banyak baris dalam database mysql sekaligus dengan pernyataan yang disiapkan?

  3. Mengambil catatan mysql ke tabel html menggunakan PHP

  4. UPDATE Baris yang Sama Setelah UPDATE di Trigger

  5. Ambil data dari dua tabel dengan hubungan kunci asing di Django?