Google bigquery 使用HAVING COUNT(*)=1 BiqQuery时如何包括行

Google bigquery 使用HAVING COUNT(*)=1 BiqQuery时如何包括行,google-bigquery,Google Bigquery,我有一个包含30多列的bigQuery表,我想选择*其中会话是唯一的 我有一个疑问: SELECT * FROM `table.id` WHERE session IN ( SELECT session FROM `table.id` GROUP BY session HAVING COUNT(*) = 1 ) 这是可行的,但我刚刚从另一个问题中学到,COUNT*=1排除了重复行: 请注意,DISTINCT用于显示不同的记录,包括重复记录中的1条记录。另一方面,

我有一个包含30多列的bigQuery表,我想选择*其中会话是唯一的

我有一个疑问:

SELECT *
FROM `table.id`
WHERE session IN (
    SELECT session
    FROM `table.id`
    GROUP BY session
    HAVING COUNT(*) = 1
)
这是可行的,但我刚刚从另一个问题中学到,COUNT*=1排除了重复行:

请注意,DISTINCT用于显示不同的记录,包括重复记录中的1条记录。另一方面,如果COUNT=1,则只检查不重复的记录。 举个简单的例子,如果会话有:1,1,2,3 DISTINCT将导致:1、2、3 计数=1将导致:2,3

我需要不同的结果,包括一个重复条目的结果

有人能帮我吗?提前谢谢,向您致以亲切的问候

也许吧


谢谢你的回答!它不起作用,当我运行SELECT COUNTDISTINCT sessions时,它会给我1023个条目,当我运行SELECT*FROM`table.id`WHERE session IN SELECT DISTINCT sessionFROM`table.id`时,它会给我更多条目……也许是行号?
SELECT *
FROM (
  SELECT *, ROW_NUMBER() OVER (PARTITION BY session) as row_num
  FROM `table.id`
)
WHERE row_num = 1