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

MySQL/SQL:Актуализация с корелирана подзаявка от самата актуализирана таблица

След двата отговора, които получих (нито един от тях не беше пълен, така че написах своя собствен), това, което в крайна сметка направих, е както следва:

UPDATE Table AS target
INNER JOIN 
(
select category, appearances_sum
from Table T inner join (
    select category as cat, sum(appearances) as appearances_sum
    from Table
    group by cat
) as agg
where T.category  = agg.cat
group by category
) as source
ON target.category = source.category
SET target.probability = target.appearances / source.appearances_sum 

Работи много бързо. Опитах и ​​с корелирана подзаявка, но беше много по-бавна (на порядък), така че се придържам към присъединяването.



  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

  2. Вмъкване след съкращаване започва от 1; но вмъкване след изтриване се възобновява от предишната стойност

  3. Каква е разликата между MySQLdb, mysqlclient и MySQL конектор/Python?

  4. Как да поръчам MySQL заявка по конкретна колона?

  5. Как да запазите подписа в MySQL