2013-01-15 1 views
-4

У меня есть таблица с именем комментарии:MySQL Количество avarge

ID | COMMENT | DATE  | 
---|---------|----------| 
1 | TEXT... | 01/01/12 | 
2 | TEXT... | 01/01/12 | 
3 | TEXT... | 15/01/12 | 
4 | TEXT... | 01/01/13 | 

В таблице есть комментарии от 2012 года и мало с 2013 года Как я могу выбрать только записи с 2012 года, а затем получить среднее количество комментария в 2012 году?

+0

Пожалуйста, обновите ваш ответ [что вы испробовали ] (http://www.whathaveyoutried.com) – Kermit

ответ

0

Один действительно не должен хранить временные значения в столбцах типа строки. Я полагаю, что вы первый преобразовать столбец DATE в DATE типа в MySQL:

ALTER TABLE comments ADD COLUMN new_date DATE AFTER `DATE`; 
UPDATE comments SET new_date = STR_TO_DATE(`DATE`, '%d/%m/%y'); 
ALTER TABLE comments DROP COLUMN `DATE`; 

(Очевидно, что вам нужно будет обновить код приложения, чтобы использовать этот новый столбец).

Тогда:

  1. Как я могу выбрать только записи с 2012

    Вы можете просто использовать операторы неравенства в фильтре:

    SELECT * 
    FROM comments 
    WHERE new_date BETWEEN '2012-01-01' AND '2013-01-01' 
    
  2. а затем получить средний счетчик комментариев o f 2012?

    Не совсем уверен, что вы имеете в виду под «Среднее количество комментариев», но если вы хотите, среднее количество комментариев в день:

    SELECT COUNT(*)/DATEDIFF('2013-01-01', '2012-01-01') 
    FROM comments 
    WHERE new_date BETWEEN '2012-01-01' AND '2013-01-01' 
    
+0

Спасибо, человек! Узнал что-то новое! – ChrisMe

 Смежные вопросы

  • Нет связанных вопросов^_^