1

約 2000 の衣料品を含む製品のテーブルがあり、各製品にはgrpIdentフィールドとフィールドがありproductGroupます。

次のクエリを実行すると:

select count(1) 
from tblclothingitems ci 
where productGroup='hel' 
group by productGroup, grpIdent

SQL Yog によると、99 行の結果セットが得られ、各グループの行数に関連するさまざまな値が含まれています。しかし、返された行数を示す数値 99 を返したいと思います。

どうすればこれを達成できるか考えている人はいますか?

4

5 に答える 5

2
SELECT COUNT(*) FROM ([Your Query])

クエリが返す行数を返します。

于 2010-06-24T14:57:21.530 に答える
2
select **@@Rowcount** as myResultRowsCount
from tblclothingitems ci 
where productGroup='hel' 
group by productGroup, grpIdent
于 2012-05-23T14:40:45.120 に答える
1
select productGroup, grpIdent, count(*) 
from tblclothingitems ci 
where productGroup='hel' 
group by productGroup, grpIdent;

grpIdent のさまざまな値のカウントを返します。

ポイント 1. テーブルをネストし、count(*) を選択して行をカウントできます。

ポイント 2. 以下は、値のカーディナリティの優先クエリです。

select count (distinct grpIdent) 
from tblclothingitems ci 
where productGroup='hel'; 
于 2014-02-15T03:46:40.270 に答える
0

単一の値が必要な場合は、変数を選択する必要があります。
このような:

DECLARE @Count INT;
select @Count = count(1) from tblclothingitems ci where productGroup='hel' group by productGroup, grpIdent
RETURN @Count

編集:
あなたの質問が間違っているようです。私が今それを理解していれば、次を使用できます: SELECT COUNT(DISTINCT productgroup) FROM tblclothingitems

于 2010-06-24T14:57:15.820 に答える
0

上記のクエリ例を使用して、次のように機能する MySQL の組み込み関数「SQL_CALC_FOUND_ROWS」を使用します。

SQL_CALC_FOUND_ROWS カウントを選択(1)
from tblclothingitems ci
ここで、productGroup='hel'
group by productGroup、grpIdent

次に、2 番目の MySQL コマンドを発行します。

SELECT FOUND_ROWS();

そして、その結果をソフトウェア内で使用します。たとえば、データの更新や、アプリに返される行数を制限するために「LIMIT」句を使用している場合など、多くの領域でこれを使用できます。

SQL_CALC_FOUND_ROWS は、「LIMIT」句を無視して行数を計算するように MySQL に指示します。これにより、次のようなことが可能になります。

SELECT SQL_CALC_FOUND_ROWS *
FROM `myTable`
WHERE `title` LIKE "%blah%"
リミット 100,10;

100 行目から 10 行を抽出するには、次のようにします。

SELECT FOUND_ROWS();

これにより、テーブル全体のフィールドに「何とか」が含まれている行がいくつあるかがわかります。titleこの情報は、「合計 12345 から 10 行を表示しています」として表示できます。

于 2010-06-24T16:28:02.890 に答える