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

Nhận tên cột có giá trị lớn nhất trong một hàng sql

Điều này nên làm điều đó:

select
  userid,
  max(case when rank=1 then name end) as `highest value`,
  max(case when rank=2 then name end) as `2nd highest value`,
  max(case when rank=3 then name end) as `3rd highest value`,
  max(case when rank=4 then name end) as `4th highest value`
from
(
  select userID, @rownum := @rownum + 1 AS rank, name, amt from (
    select userID, Buitenland as amt, 'Buitenland' as name from newsarticles where userID = 9 union
    select userID, Economie, 'Economie' from newsarticles where userID = 9 union
    select userID, Sport, 'Sport' from newsarticles where userID = 9 union
    select userID, Cultuur, 'Cultuur' from newsarticles where userID = 9 union
    select userID, Wetenschap, 'Wetenschap' from newsarticles where userID = 9 union
    select userID, Media, 'Media' from newsarticles where userID = 9
  ) amounts, (SELECT @rownum := 0) r
  order by amt desc
  limit 4
) top4
group by userid

Bản trình diễn: http://www.sqlfiddle.com/#!2/ff624/11



  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_fetch_array bỏ qua hàng đầu tiên

  2. Lỗi MySQL khi chèn dữ liệu có chứa dấu nháy đơn (dấu nháy đơn)?

  3. Làm cách nào tôi có thể nhận được số lượng khách hàng mỗi ngày theo khách hàng duy nhất và khách hàng lặp lại cho ngày cụ thể?

  4. Hủy truy vấn MySQL khi người dùng hủy bỏ

  5. python và mysql trên mac os x