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

bảng tổng hợp mysql với các giá trị chuỗi

Tùy thuộc vào phiên bản của mysql bạn đang sử dụng, đây là một phương pháp thiết lập row_number mỗi nhóm, sau đó sử dụng conditional aggregation được nhóm theo số hàng đó:

select 
    rn, 
    max(case when stuff = 'bag' then name end) 'bag',
    max(case when stuff = 'book' then name end) 'book',
    max(case when stuff = 'shoes' then name end) 'shoes' 
from (
  select *, row_number() over (partition by stuff order by name) rn
  from stuff_table
) t
group by rn

Vì bạn đang sử dụng phiên bản cũ hơn của mysql , bạn sẽ cần sử dụng user-defined variables để thiết lập số hàng. Phần còn lại sau đó hoạt động tương tự. Đây là một ví dụ:

select 
    rn, 
    max(case when stuff = 'bag' then name end) 'bag',
    max(case when stuff = 'book' then name end) 'book',
    max(case when stuff = 'shoes' then name end) 'shoes' 
from (
  select *, 
  ( case stuff 
         when @curStuff
         then @curRow := @curRow + 1 
         else @curRow := 1 and @curStuff := stuff 
   end
  ) + 1 AS rn
  from stuff_table, (select @curRow := 0, @curStuff := '') r
  order by stuff
) t
group by rn


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP không thể kết nối với mysql thông qua python

  2. QueryException SQLSTATE [HY000] [1045] Quyền truy cập bị từ chối đối với người dùng 'homestead' @ 'localhost' (sử dụng mật khẩu:CÓ)

  3. MySQL WHERE NOT IN cực kỳ chậm

  4. Không thể tìm thấy phương thức UseMysql trên DbContextOptions

  5. Các hàng trùng lặp trong MySQL