我在oracle中有这个查询,它通过UUID字段产生一个计数,子字符串为1,42 ..这是因为我们在UUID之后附加了额外的字符来表示来自同一个UUID的多个动作。此查询工作正常,问题是,UUID字段还具有17个字符长的android设备ID,而不是UUID具有的42个字符。我怎么能包括这些" UUIDs"那不是标准的42个字符吗?
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
答案 0 :(得分: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