Выборка с GROUP BY - MySQL

Узнай цену своей работы

Формулировка задачи:

есть таблица bets с полями game, mult, sum Нужно вытащить сумму полей sum при одинаковых mult и только у указанных game. Что я и пытался сделать
SELECT SUM(`sum`) AS `multTotal`, game, mult FROM bets GROUP BY mult HAVING `game`=2032 ORDER BY mult
Но запрос не возвращает строк, хотя если в HAVING поставить game=3, то всё верно получается. Не могу понять в чем проблема. Возможно потому что game=3 - это первые две строки в таблице, а game=2023 это 4ая строка. Скрин таблицы - http://prntscr.com/g7izwx

Решение задачи: «Выборка с GROUP BY»

textual
Листинг программы
SELECT
    [ALL | DISTINCT | DISTINCTROW ]
      [HIGH_PRIORITY]
      [STRAIGHT_JOIN]
      [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT]
      [SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]
    select_expr [, select_expr ...]
    [FROM table_references
      [PARTITION partition_list]
    [WHERE where_condition]
    [GROUP BY {col_name | expr | POSITION}
      [ASC | DESC], ... [WITH ROLLUP]]
    [HAVING where_condition]
    [ORDER BY {col_name | expr | POSITION}
      [ASC | DESC], ...] ...

Объяснение кода листинга программы

Ваш запрос написан на языке SQL и выполняет выборку данных из одной или нескольких таблиц, указанных в table_references.

  1. SELECT - указывает, какие столбцы или выражения следует вернуть в результате запроса.
  2. [ALL | DISTINCT | DISTINCTROW] - указывает, должны ли быть возвращены все строки или только уникальные значения в каждом наборе результатов.
  3. [HIGH_PRIORITY] - этот параметр используется для выбора алгоритма выполнения запроса с высоким приоритетом.
  4. [STRAIGHT_JOIN] - указывает, что соединение таблиц должно быть выполнено в прямом порядке (последовательно), а не в обратном.
  5. [SQL_SMALL_RESULT] и [SQL_BIG_RESULT] - эти параметры используются для управления размером результирующего набора данных.
  6. [SQL_BUFFER_RESULT] - указывает, что результирующий набор данных должен быть кэширован в памяти.
  7. [SQL_CACHE | SQL_NO_CACHE] - указывает, должен ли результирующий набор данных быть кэширован или нет.
  8. [SQL_CALC_FOUND_ROWS] - этот параметр используется для расчета общего числа строк, которые были бы возвращены без применения условий выборки.
  9. select_expr - выражение, которое определяет столбцы, которые должны быть возвращены в результате запроса.
  10. [FROM table_references] - указывает, из каких таблиц следует выбирать данные.
  11. [PARTITION partition_list] - указывает, что выборка должна быть выполнена только для определенных разделов таблицы.
  12. [WHERE where_condition] - указывает, какие строки следует исключить из выборки.
  13. [GROUP BY {col_name | expr | POSITION}] - группирует строки по указанным столбцам или выражениям.
  14. [WITH ROLLUP] - указывает, что в групповые строки следует включить также общее значение выражения.
  15. [HAVING where_condition] - указывает, какие группы следует исключить из выборки.
  16. [ORDER BY {col_name | expr | POSITION}] - сортирует результаты по указанным столбцам или выражениям.
  17. [ASC | DESC] - указывает, должны ли результаты быть отсортированы в порядке возрастания или убывания.
  18. [WITH UNIQUE ROWS] - указывает, что в результирующем наборе данных должны быть только уникальные строки.
  19. [LIMIT row_count] - ограничивает количество возвращаемых строк.
  20. [OFFSET offset] - смещает начало выборки на указанное количество строк.

Оцени полезность:

11   голосов , оценка 3.909 из 5