2012-04-25 2 views
0

Допустим, вы получили стол, как этотЗаявление SQL для создания таблицы в результате операции подсчета?

id terms  
1 a  
2 c  
3 a  
4 b  
5 b  
6 a  
7 a 
8 b 
9 b 
10 b   

и вы хотите, чтобы в конечном итоге с отчетом, как это;

terms count 
a  4 
b  5 
c  1 

вы бежите это за первым столом

SELECT terms, COUNT(id) AS count 
    FROM table 
GROUP BY terms 
ORDER BY terms DESC 

До сих пор так хорошо.

Но вышеуказанный SQL-статус ставит представление отчета в браузере. Ну, я хочу сохранить эти данные в SQL.

Итак, какой SQL-команде мне нужно вставить результаты этого отчета в таблицу?

Предположим, что вы уже создали таблицу с именем reports;

create table reports (terms varchar(500), count (int)) 

Давайте предположим, что reports таблицы пуста, и мы просто хотим, чтобы заполнить его следующую точку зрения - с одной гильзой. Вопрос, о котором я спрашиваю, как?

terms count 
    a  4 
    b  5 
    c  1 
+0

http://dev.mysql.com /doc/refman/5.0/en/insert-select.html –

ответ

4

Как все просто:

INSERT INTO reports 
SELECT terms, COUNT(id) AS count 
FROM table 
GROUP BY terms 
ORDER BY terms DESC 
+1

Я съеживаюсь от мысли отталкивания данных в таблицу в определенном порядке. В основном потому, что вам не гарантировано получить данные _out_ в этом порядке 'по умолчанию' - для завершения запроса требуется инструкция 'ORDER BY'. –

1

если таблица уже существует:

Insert reports 
SELECT terms, COUNT(*) AS count 
FROM table 
GROUP BY terms 

если нет:

SELECT terms, COUNT(*) AS count 
into reports 
FROM table 
GROUP BY terms 
Смежные вопросы