完全披露:我是 SQL 初学者。
我有一组美国公司的某些会计和治理指标的数据集。它有大约 15 列和大约 1800 万行。每一行都是公司、日期和被测量指标的独特组合。这些列包括某些标识符,如 isin 编号、股票代码等、度量标准发布的日期、度量标准描述和度量标准本身。
我要做的是编写一个查询,该查询将为所有公司的某个指标生成最新值。在过去几天的无望搜索中,我开始认为 GROUP BY 子句可能是我正在寻找的。但是,它似乎并没有完全满足我的需要。我只使用 2 列:isin 编号(公司标识符)和日期。换句话说,我可以吐出一个显示每家公司最近日期的列表,但我不确定如何在其中添加更多列,如何指定要查看的指标。
任何指导都将不胜感激,即使它只是为我指出我应该研究什么样的命令的正确方向。
谢谢!
编辑:哇。感谢您的快速和彻底的答复。并指出清晰度和示例数据集/开始查询。更新:我想我有它的工作。这是我使用的:
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"'
我现在正在查看回复,以确保我尽可能高效地执行此操作。