Mysql
 sql >> Database >  >> RDS >> Mysql

Qual è l'equivalente SQL di panda 'transform'?

Puoi unirti a una tabella derivata che contiene il valore aggregato per ogni raggruppamento di b

select * from mytable t1
join (
    select avg(a), b
    from mytable
    group by b
) t2 on t2.b = t1.b

o utilizzando una sottoquery

select *, (select avg(a) from mytable t2 where t2.b = t1.b)
from mytable t1

la domanda è taggata sia mysql che psql, quindi non sono sicuro di quale db stai usando. Ma su postgres puoi usare le funzioni della finestra

select *, avg(a) over (partition by b) 
from mytable