Запрос MySQL и редактирование php

#php #mysql

#php #mysql

Вопрос:

У меня есть много записей базы данных, каждая из которых содержит значение.

Я хочу показать некоторую статистику относительно этих значений, поэтому я должен быть в состоянии сказать:

  • сколько записей (строк) имеют значение от 0 до 5,
  • сколько записей (строк) имеют значение от 6 до 10,
  • сколько записей (строк) имеют значение от 11 до 20,
  • сколько записей (строк) имеют значение больше 20.

(значения выше приведены только в качестве примера)

Допустим, у меня будет примерно 6-7 интервалов, по которым я хочу сгруппировать значения. Могу ли я сделать это в одном запросе MySQL? Если да, то как я могу получить доступ к сгруппированным значениям с помощью photoshop PHP после?

Спасибо!

Редактировать:
Похоже, что запрос на самом деле сложнее. У меня есть 2 столбца (val1 и val2). Я хочу, чтобы запрос подсчитал, сколько элементов имеют значения val1 / val2 (val1, разделенное на val2) между интервалами…

Комментарии:

1. БОЖЕ, я думаю, мне следует сделать перерыв … :)) Я имел в виду php lol.

Ответ №1:

 SELECT 
   SUM(col BETWEEN 0 AND 5) AS 0_to_5,
   SUM(col BETWEEN 6 AND 10) AS 6_to_10,
  

и т.д. и т.п.

re: ваша правка:

   SELECT 
   SUM(val1/val2 BETWEEN 0 AND 5) AS 0_to_5,
   SUM(val1/val2 BETWEEN 6 AND 10) AS 6_to_10,
  

Комментарии:

1. 1 Отсюда всего лишь простой шаг — сделать снимок экрана с выводимыми значениями и вставить их в photoshop.

2. @Cristy: Я знаю. Я пошутил 🙂

3. Я знаю, ты пошутил, я разговаривал с Фрэнком; Я кое-что добавил к запросу :))

Ответ №2:

Если диапазоны, на которые вы разбиваете подсчеты, имеют одинаковый размер, вы можете использовать оператор modulo:

 SELECT MOD(col, 5), COUNT(col)
FROM ...
WHERE ...
GROUP BY MOD(col, 5)
  

который автоматически группировал бы все в тип 5 для каждой категории и обрабатывал неограниченный диапазон категорий.

Если диапазоны имеют разный размер, то вам придется сгенерировать большую конструкцию типа case / if-then-else для проверки каждого диапазона по отдельности.