Sql 如何通过表T的Y列获取每组第一行的非分组X列值?

Sql 如何通过表T的Y列获取每组第一行的非分组X列值?,sql,oracle,Sql,Oracle,我有一个包含X、Y和Z列的表T。我需要在SQL单个查询中检索每个组的第一行的非分组列X值、分组列Y值和列Z值的最小值 请你帮个忙。我假设你有一列x_dt,可以用来确定Y组的第一行 SELECT x, y, z FROM (SELECT x, y, MIN(z) OVER (PARTITION BY y) AS z, ROW_NUMBER() OVER (PARTITION BY y ORDER BY x_dt) AS rn FROM T) T2 WHERE rn =

我有一个包含X、Y和Z列的表T。我需要在SQL单个查询中检索每个组的第一行的非分组列X值、分组列Y值和列Z值的最小值


请你帮个忙。

我假设你有一列x_dt,可以用来确定Y组的第一行

SELECT
  x,
  y,
  z
FROM (SELECT
  x,
  y,
  MIN(z) OVER (PARTITION BY y) AS z,
  ROW_NUMBER() OVER (PARTITION BY y ORDER BY x_dt) AS rn
FROM T) T2
WHERE rn = 1;

这很难分析。也许您可以显示示例输出?具体地说,“first”是什么意思?如果我没有错误地解析它,他是否试图说他有一个查询,如SELECT Y,MIN(Z)FROM T GROUP by,现在是否也可以检索组Y中第一行的X值(假设它们已经按某种ID排序)在同一个查询中?是的,您正确地解析了它。我本可以恰当地描述我的问题。无论如何,我从lins314159那里得到了答案。