7

私は「よく」テーブルを持っています。列 app_rate_unit (型: nvarchar) が含まれています。私の目標は、テーブル内の個別の値をすべてカウントし、DBMS (MS Server 2005) に最も多く発生する値を与えることです。

これは私のコードです:

SELECT MAX(app_rate_unit) AS MAX_APP
  FROM (SELECT app_rate_unit, COUNT(*) AS co
          FROM dbo.well AS w
         GROUP BY app_rate_unit
        ) AS derivedtbl_1

ただし、問題は、私の DBMS が実際に私に提供するカウントが最も少ないことです。

SideQuestion: カウント時に外部キー (テーブル内) と NOT NULL (app_rate_unit 内) をフィルタリングするにはどうすればよいですか?

4

4 に答える 4

15
select top 1 app_rate_unit, count(*) from dbo.well
group by app_rate_unit
order by count(*) desc
于 2012-07-25T09:29:10.070 に答える
1

これを試して

    SELECT 
        COUNT(app_rate_unit)AS MAX_APP , 
        app_rate_unit 
    FROM 
        dbo.well
    WHERE
            app_rate_unit IS NOT NULL
    GROUP BY 
        app_rate_unit 
    ORDER BY 
            MAX_APP DESC

上記のスクリプトは、カウントとアイテムを提供します。1 つの項目だけが最大出現数になるかどうかわからない場合は、カウントを変更できます。

于 2012-07-25T09:32:08.403 に答える
0

PostgreSQL では、最大カウント数を使用するクエリを記述できます。

select max(count) from (

select count(id) from Table _name group by created_by,status_id having status_id = 6 ) as Alias

例えば

select max(count) from (

select count(id) from orders group by created_by,status_id having status_id = 6 ) as foo
于 2014-06-03T07:11:34.770 に答える
0
select top 1 count(*) as co from dbo.well as w group by app_rate_unit
order by count(*) desc
于 2012-07-25T09:24:31.710 に答える