7

これが私を襲ったとき、私はいくつかのSQLを練習していました。ある商品が何回登場したかを見て、その中から最も多く出た商品を取得したかったのです。

これは、各商品が何回出現するかを示しています。

mysql> SELECT commodity, COUNT(commodity) count FROM orders GROUP BY commodity ORDER BY count;
+----------------------+------------+
| commodity            |    count   |
+----------------------+------------+
| PERSIAN MELON        |          4 |
| BEANS                |          6 |
| CASABA               |         10 |
| ASPARAGUS            |         11 |
| EGGPLANT             |         12 |
| TOMATOES, CHERRY     |         16 |
| GALIA MELON          |         18 |
+-----------------------------------+

最高の行を取得しようとしていますが、すべて間違っています:

mysql> SELECT commodity, MAX(COUNT(commodity)) count FROM orders GROUP BY commodity ORDER BY count;

これを行う正しい方法は何ですか?

4

5 に答える 5

9

注意: クエリは、最大数の重複レコードを処理しません。COUNT

SELECT  commodity,  COUNT(commodity) `count` 
FROM    orders 
GROUP   BY commodity
ORDER   BY `count` DESC 
LIMIT   1

しかし、これは、

SELECT  commodity,  COUNT(commodity) `count` 
FROM    orders 
GROUP   BY commodity
HAVING  COUNT(commodity) =
(
    SELECT MAX(`COUNT`) 
    FROM
    (
        SELECT  COUNT(commodity) `count` 
        FROM    orders 
        GROUP   BY commodity
    )   s
)
于 2013-01-19T12:07:05.847 に答える
3

このクエリを試してください

  SELECT commodity,COUNT(commodity) AS count 
    FROM orders
GROUP BY commodity
ORDER BY count desc
   LIMIT 1;
于 2013-01-19T12:00:07.297 に答える
0

私は次のように書きます。

select * from (SELECT commodity, COUNT(commodity) count FROM orders GROUP BY commodity ORDER BY count desc) where rownum <2;
于 2013-01-19T11:59:44.457 に答える
0

順序にdescを追加するだけで結構です

SELECT commodity, COUNT(commodity) count FROM orders GROUP BY commodity ORDER BY count DESC;

最初の行には最大値があり、この 1 つのレコードだけを取得するための制限が追加されます

SELECT commodity, COUNT(commodity) count FROM orders GROUP BY commodity ORDER BY count DESC LIMIT 1;
于 2013-01-19T12:01:13.473 に答える
0

あなたはそれを正しくやっているようです。ORDER BY順番に注文することを除いてASC。下降させる

mysql> SELECT commodity, COUNT(commodity) count FROM orders GROUP BY commodity ORDER BY count DESC;
于 2013-01-19T12:02:29.637 に答える