Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Hanya satu ekspresi yang dapat ditentukan dalam daftar pilih ketika subquery tidak diperkenalkan dengan EXISTS

Anda tidak dapat mengembalikan dua (atau beberapa) kolom di subkueri untuk melakukan perbandingan di WHERE A_ID IN (subquery) klausa - kolom mana yang harus dibandingkan A_ID ke? Subkueri Anda hanya boleh mengembalikan satu kolom yang diperlukan untuk perbandingan dengan kolom di sisi lain IN . Jadi kueri harus dalam bentuk:

SELECT * From ThisTable WHERE ThisColumn IN (SELECT ThatColumn FROM ThatTable)

Anda juga ingin menambahkan pengurutan sehingga Anda dapat memilih hanya dari baris teratas, tetapi Anda tidak perlu mengembalikan COUNT sebagai kolom untuk melakukan pengurutan; menyortir dalam ORDER klausa tidak tergantung pada kolom yang dikembalikan oleh kueri.

Coba sesuatu seperti ini:

select count(distinct dNum) 
from myDB.dbo.AQ 
where A_ID in
    (SELECT DISTINCT TOP (0.1) PERCENT A_ID
    FROM myDB.dbo.AQ 
    WHERE M > 1 and B = 0
    GROUP BY A_ID 
    ORDER BY COUNT(DISTINCT dNum) DESC)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. menentukan set karakter dari tabel / database?

  2. Saya tidak dapat memulai browser SQL Server

  3. CONVERT() vs TRY_CONVERT di SQL Server:Apa Bedanya?

  4. SQL Server - mengendus parameter

  5. Bagaimana cara meningkatkan kinerja untuk pemfilteran datetime di SQL Server?