Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

कॉलम नाम प्राप्त करें जिसका एक पंक्ति में अधिकतम मान है sql

इसे यह करना चाहिए:

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

डेमो: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. Low_case_table_names=1 Ubuntu 18.04 पर mysql को प्रारंभ नहीं होने देता

  2. डेटाबेस में छवियों को कब स्टोर करें (mySQL) और कब नहीं? (डेटाबेस में आइटम को छवि से जोड़ना)

  3. बिटवाइज़ झंडे छोड़े गए?

  4. क्या mysql में स्ट्रिंग की लंबाई की कोई सीमा है?

  5. JDBC ड्राइवर वर्ग लोड नहीं कर सका [com.mysql.jdbc.Driver]