Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Was ist das SQL-Äquivalent zu pandas 'transform'?

Sie können eine Verbindung zu einer abgeleiteten Tabelle herstellen, die den aggregierten Wert für jede Gruppierung von b

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

oder mit einer Unterabfrage

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

Die Frage ist sowohl mit mysql als auch mit psql gekennzeichnet, daher bin ich mir nicht sicher, welche Datenbank Sie verwenden. Aber auf Postgres können Sie Fensterfunktionen verwenden

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