我正在尝试对散布在mySQL中多行中的单个用户数据进行分组。
我尝试使用分组方式,将所有4列多次连接,但无法实现。
下面是我的表和架构
我正在尝试以以下形式将其作为结果
能帮我在MYSQL中进行查询吗?
答案 0 :(得分:1)
您可以进行聚合:
select deviceid, max(country), max(affid), max(accountid), max(package)
from table t
group by deviceid;
编辑::如果您使用的是更高版本,则可以使用窗口功能:
select distinct t.Date, t.deviceid,
max(t.country) over (partition by t.deviceid) as country,
max(t.affid) over (partition by t.deviceid) as deviceid,
. . .
from table t;
答案 1 :(得分:1)
将按设备ID分组后获得的所有最大列加入表:
select distinct
t.date,
t.deviceid,
g.country,
g.affid,
g.accountid,
g.package
from tablename inner join (
select
deviceid,
max(country) country,
max(affid) affid,
max(accountid) accountid,
max(package) package
from tablename
group by deviceid
) g on g.deviceid = t.deviceid