这是我的输出示例:

我只需要为每个visitId 取第一条记录(最短时间)。
我尝试使用 MIN 函数从 GROUP BY 列表中排除 hits.time :
SELECT STRFTIME_UTC_USEC(date, '%U') AS WK, visitId, date AS SALES_DATE, hits.eventInfo.eventLabel AS SEARCH_DD, year(date) as yr, MIN(hits.time) AS t FROM (TABLE_DATE_RANGE([67977396.ga_sessions_], TIMESTAMP('2015-03-04'), TIMESTAMP('2015-03-04'))) WHERE hits.eventInfo.eventAction='Depart date' AND hits.eventInfo.eventCategory='Book a train' GROUP BY 1, 2, 3, 4, 5 ORDER BY visitId
我得到了这个输出:

问题是,正如您在最后两条记录中看到的,对于同一个visitId,我仍然有两行。那是因为该查询仅适用于相同的 search_dd。我需要在不查看search_dd 的情况下为每个visitId 花费最少的时间。
有什么建议吗?
提前致谢!
一个愚蠢的问题:
我必须在同一列中分组不同的if语句.我能怎么做?
if(string ='AAA','A','other'),if(string ='BBB','B','other')AS COLUMN 1
谢谢!