Mysql
 sql >> база данни >  >> RDS >> Mysql

Какъв е SQL еквивалентът на pandas 'transform'?

Можете да се присъедините към производна таблица, която съдържа обобщената стойност за всяко групиране на b

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

или използване на подзаявка

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

въпросът е маркиран както с mysql, така и с psql, така че не съм сигурен коя db използвате. Но в postgres можете да използвате прозоречни функции

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Правете изчисления в MySQL срещу PHP

  2. YEAR() Примери – MySQL

  3. Конфигурация на MySQL / CodeIgniter на OpenShift

  4. Най-добра практика за съхраняване на датата в MySQL от PHP

  5. Как да премахнете част от низ в mysql?