Как суммировать один столбец в группе другого столбца? - PullRequest
0 голосов
/ 17 июля 2011

Это моя проблема:

NAME    DATE           PRESENTS
bob     march 3 2011      1
bob     june 6 2008       2
bob     jan 3 2012        3
mary    feb 14 1986       4
mary    april 10 2001     5
mary    jan 3 2012        6
kate    march 3 2011      7
kate    jan 3 2012        8
kate    oct 9 2013        9
celia   march 3 2011     10
celia   feb 14 1986      11
celia   july 4 2011      12
celia   jan 3 2012       13
celia   feb 14 1991      14

Итак, цель в том, чтобы мы добавили количество подарков, которые Кейт и Селия получили в те же дни, если они вообще их получили в те дни.

Что мне нужно сделать, это примерно так, за исключением гораздо большего набора данных.Размер набора данных составляет около 100 000 записей.

Мне нужен ответ в SQL или как запрос Access 2003.

Ответы [ 5 ]

1 голос
/ 17 июля 2011

Если presents - это число подарков, которые Кейт, Селия или еще кто-то получили на определенную дату:

select name, date, sum(presents) total_on_date
from table
where name in ('kate','celia')
group by name, date

и я отнюдь не гений sql

0 голосов
/ 17 июля 2011

Если хотите

количество подарков, которые Катя и Селия получили в те же дни

тогда:

SELECT
    presents1.date AS presents_date,
    (COUNT(*) + 1) AS presents_count
FROM
    presents presents1,
    presents presents2
WHERE presents1.date = presents2.date
AND presents1.name = 'kate'
AND presents2.name = 'celia'
GROUP BY presents1.date

Предполагается, что имя таблицы presents.

0 голосов
/ 17 июля 2011

относится к ответу Богемского: -

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

select count(*)
from mytable t1 join mytable t2 
     on t1.DATE = t2.DATE 
where t1.NAME = 'kate' and t2.NAME = 'celia';
0 голосов
/ 17 июля 2011

Вы должны присоединиться к себе, как это:

select DATE, SUM(PRESENTS) as TOTAL_JOINT_PRESENTS
from mytable t1
join mytable t2 on t1.DATE = t2.DATE
where t1.NAME = 'kate'
and t2.NAME = 'celia';
0 голосов
/ 17 июля 2011
select name, date, count(presents) total_on_date
from table
where name in ('kate','celia')
group by name, date

при условии, что вы хотите посчитать идентификаторы подарков

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