SQL Server запрос к групповым записям - PullRequest
0 голосов
/ 10 мая 2011

Я хотел бы выбрать из следующей таблицы:

PostTable

feed     dateinserted        count
  box1       2011-05-28 11:00    1000
  box2 
  box3
  box4 
  box5
  box6

общее количество записей за предыдущий день, где фид равен 1, 3 и 5, т.е.каналы, для которых мне нужно получить итоговые данные, будут выбраны только на основе того, что мне нужно, например, это может быть box4 и box 5 ... не совсем нечетно и нечетно ... Надеюсь, это делает это более понятным* что у меня есть для всех записей:

select sum(count) as [total] from PostTable where Cast(dateinserted as DATE) = 
 CAST(getdate()-1 as DATE)

Ответы [ 3 ]

2 голосов
/ 10 мая 2011
SELECT feed, SUM(count) AS total FROM PostTable
WHERE Cast(dateinserted as DATE) = CAST(getdate()-1 as DATE) AND feed IN ('box1', 'box3', 'box4')
GROUP BY feed
0 голосов
/ 11 мая 2011

Это может быть полная помощь для случайного нечетного числа

Идентификатор 阿 略 1 2 3 4 5 6 7 8 9

declare @input varchar(10)
set @input = 1
while @input < = 9
begin
select id from emp where id = @input
set @input = @input + 2
end 
0 голосов
/ 10 мая 2011
SELECT SUM(count) AS Total FROM PostTable WHERE CONVERT(date, dateinserted, 101)=CONVERT(DATE, DATEADD(DAY, -1, GETDATE()), 101) AND feed % 2=1

После вашего редактирования запрос будет выглядеть примерно так:

;with temp as(
select ROW_NUMBER() OVER (ORDER BY feed) AS RowNum, * from PostTable)
SELECT SUM(count) AS Total FROM temp WHERE CONVERT(date, dateinserted, 101)=CONVERT(DATE, DATEADD(DAY, -1, GETDATE()), 101) AND RowNum % 2=1

Обратите внимание на точку с запятой в начале оператора WITH. это необходимо для успешного выполнения запроса.

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