sql >> データベース >  >> RDS >> Sqlserver

サブクエリがEXISTSで導入されていない場合、選択リストで指定できる式は1つだけです。

    WHERE A_ID IN (subquery)で比較を行うために、サブクエリで2つ(または複数)の列を返すことはできません。 句-A_IDを比較するのはどの列ですか に?サブクエリは、INの反対側の列との比較に必要な1つの列のみを返す必要があります 。したがって、クエリは次の形式である必要があります:

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

    また、一番上の行から選択できるように並べ替えを追加する必要がありますが、並べ替えを行うためにCOUNTを列として返す必要はありません。 ORDERでの並べ替え 句は、クエリによって返される列から独立しています。

    次のようなものを試してください:

    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. Cassandraクラスターの移行

    2. 本番環境でPostgreSQLを管理するためのツールの統合

    3. MySQLで過去1か月のデータを取得する方法

    4. PostgreSQLでdatabase_nameコマンドを使用する