不是GROUP BY表达式Oracle

时间:2017-04-24 19:55:04

标签: sql oracle linq

我有这个问题:

SELECT * 

FROM FTR

WHERE ROWNUM = 1

GROUP BY CUSTOMER_ID

它给出了标题中的错误。我怎样才能解决这个问题?感谢。

编辑:

更准确地说,我试图将此LINQ查询转换为SQL:

var ftr_dist = db.FTR.GroupBy(x => x.CUSTOMER_ID)
                     .Select(y => y.FirstOrDefault())
                     .ToList();

编辑2: 在我的表中,有多个行具有相同的CUSTOMER_ID,并且我试图选择其中一行(与哪一行无关)。根据我的查询,应该有一些具有唯一CUSTOMER_ID的行。

1 个答案:

答案 0 :(得分:1)

  

在我的表中有多个行具有相同的CUSTOMER_ID,我正在尝试其中一行(与哪一行无关)。根据我的查询,应该有一些具有唯一CUSTOMER_ID的行。

这样的事情:

SELECT *
FROM   (
  SELECT f.*,
         ROW_NUMBER() OVER ( PARTITION BY Customer_ID ORDER BY DBMS_RANDOM.VALUE ) AS rn
  FROM   FTR f
)
WHERE  rn = 1

这将为每个CUSTOMER_ID获得一个随机行。