gpt4 book ai didi

mysql - 为具有前 3 个计数的列获取表的列名

转载 作者:可可西里 更新时间:2023-11-01 08:39:39 24 4
gpt4 key购买 nike

我需要一个表中的列名,它们是计数最高的前三列。

我正在使用 mySQL:

我能够使用此查询获得所需列的计数:

SELECT 
COUNT(unsafe_spaces_home) AS AH ,
COUNT(unsafe_spaces_school) AS SCH ,
COUNT(unsafe_spaces_market_place) AS MP ,
COUNT(unsafe_spaces_field_or_playground) AS PG ,
COUNT(unsafe_spaces_dumping_ground) AS DG ,
COUNT(unsafe_spaces_railway_station) AS RS ,
COUNT(unsafe_spaces_route_to_toilet) AS RT ,
COUNT(unsafe_spaces_toilet) AS ST ,
COUNT(unsafe_spaces_well_or_water_pump) AS WT ,
COUNT(unsafe_spaces_river_pond) AS RP ,
COUNT(unsafe_spaces_sewer) AS SS
FROM formdata

我得到的结果如下:

AH  SCH MP  PG  DG  RS  RT  ST  WT  RP  SS
===========================================
0 0 12 1 7 16 2 9 0 9 1

但是我需要这样的结果:

  top_3_columns
================
RS,MP,ST

我怎样才能做到这一点?

最佳答案

将列名称视为 a、b、c、d 和 e然后你可以使用下面的查询

select  tagName, value from 
(select 'a' tagName, count(a) value from formdata UNION
select 'b' tagName, count(b) value from formdata UNION
select 'c' tagName, count(c) value from formdata UNION
select 'd' tagName, count(d) value from formdata UNION
select 'e' tagName, count(e) value from formdata
)
as results
order by value desc
limit 3;

关于mysql - 为具有前 3 个计数的列获取表的列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39141056/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com