2015-03-12 3 views
0

Хотелось бы, чтобы я мог написать определенную часть запроса выбора в качестве ссылки, но я не могу определить методологию для решения этой проблемы. У меня есть таблица, которая имеет несколько строк, важные четыре один являютсяВыбор статистических данных из одной таблицы

ID - Arrival_Date - Type - Total_Letters_Received 1 - '2014-09-26' - A - 3

и т.д. и т.п ...

Что я пытаюсь получить это:

Year - Type - Total_Letters_Received 2014 - A - 27 2014 - B - 33 2012 - A - 21

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

Теперь я смущен, как подобрать диапазон лет в исходной таблице, а затем, как сделать этот запрос выбора. Пожалуйста, помогите в этом отношении

+0

Это запрос 'group by' и является базовой частью языка SQL. –

+0

И вы можете использовать функцию 'YEAR()' для преобразования 'Arrival_Date' в' Arrival_Year'. – Turophile

ответ

2

Вам просто нужно для использования совокупной функции и группы sum() к годовой части даты.

Если на MySQL использовать year() функции:

select 
    year(Arrival_Date) as Year, 
    Type, 
    sum(Total_Letters_Received) as Total_Letters_Received 
from 
    your_table 
group by 
    year(Arrival_Date), Type 

При использовании SQLite3 использовать strftime() функции:

select 
    strftime("%Y", Arrival_Date) as Year, 
    Type, 
    sum(Total_Letters_Received) as Total_Letters_Received 
from 
    your_table 
group by 
    strftime("%Y", Arrival_Date), Type 

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

0

Вы можете получить год от Arrival_Date с помощью функции year, и вы можете использовать group by и sum агрегат вернуть Total_Letters_Received в Year и Type:

select 
    year(Arrival_Date) as [Year], 
    Type, 
    sum(Total_Letters_Received) as Total_Letters_Received 
from YourTableName 
group by 
    year(Arrival_Date), 
    Type 
Смежные вопросы