Подсчет нескольких вхождений и запись сумм в другую таблицу - PullRequest
0 голосов
/ 11 января 2020

Используя SQL, каков наилучший способ получить количество повторяющихся элементов в table1 и поместить суммы в table2?

Table2 - результат, который я желаю

table2 is the result i desire

как текст:

table1
+----------+
|  name    | 
+----------+
| john doe |
+----------+
|mary smith| 
+----------+
| john doe |
+----------+
|mary smith|     
+----------+
| john doe |
+----------+


table2
+----------+-------+
|  name    | count |
+----------+-------+
| john doe |     3 |
+----------+-------+
|mary smith|     2 |
+----------+-------+

Ответы [ 2 ]

0 голосов
/ 11 января 2020

Для SQL Использование сервера:

SELECT name, count(*) as count_all
INTO table2
FROM table1
GROUP BY name

Для Oracle:

CREATE TABLE table2
AS
SELECT name, count(*) as count_all
FROM table1
GROUP BY name
0 голосов
/ 11 января 2020

Просто используйте CTAS( Create Table AS ) синтаксис, содержащий агрегацию ( изначально у вопроса не было тега БД ):

CREATE TABLE Table2 AS
SELECT name, count(*) as "count"
  FROM Table1
 GROUP BY name

Но если SQL Server имеет место, затем используйте:

SELECT name, count(*) as "count"
  INTO Table2
  FROM Table1
 GROUP BY name

для создания новой таблицы.

или не нужно создавать новую таблицу, просто запишите запрос агрегации через создание представления:

CREATE VIEW View1 AS
SELECT name, count(*) as "count"
  FROM Table1
 GROUP BY name

, который я предлагаю вместо создания новой таблицы.

Демо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...