1

我在 oracle 中有这个查询,它通过 UUID 字段产生一个计数,子字符串为 1,42..这是因为我们在 UUID 之后附加了额外的字符以表示来自同一 UUID 的多个操作。此查询工作正常,问题是,UUID 字段也有 17 个字符长的 android 设备 ID,而不是 UUID 具有的 42 个字符。我怎么能包含这些不是标准 42 个字符的“UUID”?

select substr(uuid,1,42), count(player_id)
From Play
Where Trunc(Create_Dtime) >= To_Date('2012-mar-01','yyyy-mon-dd')
Group By Substr(Uuid,1,42)
Having Count(*) > 5
Order By Count(Player_Id) Desc
4

1 回答 1

1

如果您能以某种方式将 Android 行与其他行区分开来

select
    case when <android-condition> then Substr(Uuid,1,17)
         else Substr(uuid,1,42)
    end
  , count(player_id)
From Play
Where Trunc(Create_Dtime) >= To_Date('2012-mar-01','yyyy-mon-dd')
Group By
    case when <android-condition> then Substr(Uuid,1,17)
         else Substr(uuid,1,42)
    end
Having Count(*) > 5
Order By Count(Player_Id) Desc
于 2012-09-13T03:47:25.407 回答