Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách CẬP NHẬT bảng với SUM () và COUNT () trong cùng một bảng thành các cột khác nhau

hãy thử nó bằng cách sử dụng giá trị cập nhật từ left join (tổng + số) bảng

update T T1
  left join (
    select `user`,sum(`sales`) newtotal,count(`order`) neworders
    from T
    group by `user`
  ) T2 on T1.`user` = T2.`user`
set T1.total = T2.newtotal,T1.orders = T2.neworders

Kiểm tra DDL:

CREATE TABLE T
    (`user` varchar(4), `sales` int, `order` varchar(7), `total` int, `orders` int)
;

INSERT INTO T
    (`user`, `sales`, `order`, `total`, `orders`)
VALUES
    ('xx01', 100, 'order01', 0, 0),
    ('xx02', 200, 'order02', 0, 0),
    ('xx02', 400, 'order03', 0, 0),
    ('xx03', 300, 'order04', 0, 0),
    ('xx03', 500, 'order05', 0, 0)
;

Kết quả:

| user | sales |   order | total | orders |
|------|-------|---------|-------|--------|
| xx01 |   100 | order01 |   100 |      1 |
| xx02 |   200 | order02 |   600 |      2 |
| xx02 |   400 | order03 |   600 |      2 |
| xx03 |   300 | order04 |   800 |      2 |
| xx03 |   500 | order05 |   800 |      2 |

LIÊN KẾT DEMO THỬ NGHIỆM



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Khắc phục “ERROR 1222 (21000):Các câu lệnh SELECT đã sử dụng có một số cột khác nhau” khi sử dụng UNION trong MySQL

  2. Cách thêm hàng mới vào jTable từ cơ sở dữ liệu trong khi nhấp vào nút mà không xóa các hàng hiện có

  3. Cách cài đặt MySQL 8.0 trên RHEL / CentOS 8/7 và Fedora 35

  4. Xuất bảng MySQL thành tệp CSV

  5. Kiểu dữ liệu tốt nhất để lưu trữ URL trong cơ sở dữ liệu MySQL là gì?