1

以下のステートメントは、products テーブルからすべての重複しない ID を取得するためのものです。この sql ステートメントによって出力される行の総数を取得する方法はありますか?

select min(product_id) from products 
where market_code = 'germany'
group by product_code


サンプル テーブル データ:

product_id   market_code   product_code
   1            uk             AAA
   1            uk             AAA
   1            uk             AAA
   2           germany         BAA
   2           germany         BAA
   3            uk             BAA

ありがとう

4

3 に答える 3

1

これを簡単に行うことができます:

SELECT COUNT(*)
FROM
(
    select min(product_id) from products 
    where market_code = 'germany'
    group by product_code
) AS t;
于 2013-10-27T14:36:20.017 に答える
0

実際、あなたのクエリは、「以下のステートメントは、製品テーブルからすべての一意/重複しない ID を取得することです」と言ったものではありません。、一意ではなく、product_code の最小の product_id を選択します。このようにする

SELECT product_code,product_id,count(*) 
FROM TABLE 
GROUP BY product_code,product_id

一意/重複しない ID とその数だけが必要な場合は、このクエリで選択できます

SELECT product_id,count(*) 
    FROM table 
    GROUP BY product_id
于 2013-10-27T14:49:06.617 に答える
0

ステートメント:

select min(product_id)
from products 
where market_code = 'germany'
group by product_code;

ドイツの製品コードの値と同じ数の行があります。特定の製品 ID に 2 つのコードが含まれていないと仮定した場合 (これはサンプル データに当てはまります)、以下は製品 ID をまったく使用せずにドイツの製品をカウントします。

select count(distinct product_code)
from products
where market_code = 'germany';
于 2013-10-27T17:01:55.647 に答える