完全な開示: 私は SQL の初心者です。
私は、米国企業の特定の会計およびガバナンス指標のデータ セットを持っています。約 15 列、約 1,800 万行あります。各行は、測定対象の会社、日付、およびメトリックの一意の組み合わせです。列には、isin 番号、ティッカー シンボルなどの特定の識別子、メトリックがリリースされた日付、メトリックの説明、およびメトリック自体が含まれます。
私がやろうとしているのは、すべての企業の特定のメトリックの NEWEST 値を生成するクエリを作成することです。ここ数日間の絶望的な検索で、GROUP BY 句が探しているものかもしれないと考えるようになりました。ただし、必要なことを正確に実行していないようです。isin 番号 (会社の識別子) と日付の 2 つの列だけで機能します。つまり、各企業の最新の日付を示すリストを吐き出すことはできますが、これにさらに列を追加する方法、どのメトリックを参照するかを指定する方法がわかりません。
どんな種類のコマンドを調べる必要があるかについて正しい方向に私を向けているだけであっても、どんなガイダンスもありがたいです。
ありがとう!
編集:うわー。迅速かつ完全な回答に感謝します。そして、明確さとサンプルデータセット/開始クエリに注目してください。更新:私はそれが機能していると思います。これが私が使用したものです:
SELECT a1.["id_isin_number"], a1.["metric_description"], a1.["date_period_ends"], a1.["company_metric_value"], a2.maxdate
FROM [AGR Metrics].[dbo].[Audit_Integrity_Metric_Data_File_NA Original_0] a1
INNER JOIN (
SELECT a2.["id_isin_number"], MAX(a2.["date_period_ends"]) AS maxdate
FROM [AGR Metrics].[dbo].[Audit_Integrity_Metric_Data_File_NA Original_0] a2
GROUP BY a2.["id_isin_number"]
) a2
ON a1.["date_period_ends"] = a2.maxdate
AND a1.["id_isin_number"] = a2.["id_isin_number"]
WHERE a1.["metric_description"] = '"Litigation: Class Action"'
可能な限り効率的にこれを行っていることを確認するために、現在応答を調べています。