生データを含むテーブルがあります。不要な余分なデータをチェックするために、50行を超えるデータを持つID(tickeridは列、earnessdataはテーブル)を特定しようとしています。(別のテーブル、earnesstickersからの)現在のすべてのティッカーIDをループし、50行を超えるデータを持つIDのみを選択する必要があります。IDで*を選択することはできますが、すべてのIDを反復処理する方法がわかりません。
3670 次
2 に答える
5
GROUP BYそれぞれごとにグループ化するために使用できます。これにより、 / / /etc...などのtickeridそれぞれに関連する集約情報にアクセスできます。tickeridCOUNTSUMAVG
あなたの目的のために、私たちはを使用しなければなりませんCOUNT。
次に、HAVING句tickeridは50行以下のを除外します。
SELECT tickerid
FROM earningsdata
GROUP BY tickerid
HAVING COUNT(*) > 50
これによりtickerid、50行を超えるsのリストが表示されますtickeridが、このリストにあるsのすべての行と情報を表示する場合は、上記のクエリをに組み込むことで、このリストに対してテーブルを結合できます。 :
SELECT a.*
FROM earningsdata a
INNER JOIN
(
SELECT tickerid
FROM earningsdata
GROUP BY tickerid
HAVING COUNT(*) > 50
) b ON a.tickerid = b.tickerid
于 2012-07-25T07:32:59.757 に答える
0
SELECT tickerid
FROM earningstickers
WHERE tickerid
IN
(SELECT tickerid
FROM earningsdata
GROUP BY tickerid
HAVING COUNT(*) > 50
)
于 2012-07-25T07:39:27.777 に答える