0
id     company_id     company_name     size_of_company     employee 
-------------------------------------------------------------------
1         1             Comp 1              Big              John
2         1             Comp 1              Big              Ann  
3         1             Comp 1              Big              Peter
4         2             Comp 2              Big              Lisa 
5         2             Comp 2              Big              Steve 
6         3             Comp 3              Big              Mike  
7         3             Comp 3              Big              Anna  
8         3             Comp 3              Big              Jon   
9         3             Comp 3              Big              Nick  
10        3             Comp 3              Big              May   
11        4             Comp 4              Big              Lee   
12        4             Comp 4              Big              James 
13        4             Comp 4              Big              Jess  
14        4             Comp 4              Big              Carrie
15        5             Comp 5              Big              Luke  
16        5             Comp 5              Big              Brad  
17        5             Comp 5              Big              Joan  
18        5             Comp 5              Big              Ruth  
19        5             Comp 5              Big              Joel  
20        6             Comp 6              Big              Paul  

这可能是一个简单的问题,但我在 MySQL 和 PHP 方面的技能相当低。我尝试了不同的循环,但根本没有结果。任何帮助将非常感激。

我想做的是:

如何计算具有相同 company_id 和 size_of_company 的行数,然后收集前 5 名的行数以及前 5 名公司的名称?

行数将在 div 中用作 div 的宽度值。div 应以不同的宽度值打印 5 次。行数越多,div 越大。

size_of_company 中也会有 Medium 和 Small 的值。但是一个 company_name 只能有一个 size_of_company。这两个其他 size_of_company 也应打印在页面上,在它们自己的类别下,中或小。

4

1 回答 1

0

如果我正确理解了这个问题,以下将计算具有相同 company_id、company_name 和 size_of_company 的行数(使用 GROUP BY)。排序然后限制结果的数量会给你前 5 名。

SELECT
 t.company_id,
 t.company_name,
 COUNT(*)
FROM
 tble t
GROUP BY
 t.company_id, t.company_name, t.size_of_company
ORDER BY
 COUNT(*) DESC
LIMIT 5
于 2013-10-23T16:20:35.547 回答