Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как мога да оценя тази таблица?

ето примерен код, който обяснява как можете да използвате оператор CASE, трябва да можете да разберете как да направите промените във вашия код

--sample data
create table #temp (SomeDate datetime)
insert #temp values ( '2009-05-12 11:13:19.667')
insert #temp values ( '2009-05-12 11:12:19.667')
insert #temp values ( '2009-05-12 11:33:19.667')
insert #temp values ( '2009-05-12 11:43:19.667')
insert #temp values ( '2009-05-12 11:03:19.667')
insert #temp values ( '2009-05-12 11:53:19.667')
insert #temp values ( '2009-05-12 11:53:19.667')
insert #temp values ( '2009-05-12 11:23:19.667')

insert #temp values ( '2009-05-12 12:13:19.667')
insert #temp values ( '2009-05-12 12:12:19.667')
insert #temp values ( '2009-05-12 13:33:19.667')
insert #temp values ( '2009-05-12 13:43:19.667')
insert #temp values ( '2009-05-12 14:03:19.667')
insert #temp values ( '2009-05-12 14:53:19.667')
insert #temp values ( '2009-05-12 15:53:19.667')
insert #temp values ( '2009-05-12 15:23:19.667')



--this is the grouping/count query
select count(*),case when datepart(mi,Somedate) < 30 
then dateadd(hh, datediff(hh, 0, Somedate)+0, 0)
 else dateadd(mi,30,dateadd(hh, datediff(hh, 0, Somedate)+0, 0)) end
from #temp
group by case when datepart(mi,Somedate) < 30 
then dateadd(hh, datediff(hh, 0, Somedate)+0, 0)
 else dateadd(mi,30,dateadd(hh, datediff(hh, 0, Somedate)+0, 0)) end

за да видите как всъщност изглеждат данните

select Somedate,case when datepart(mi,Somedate) < 30 
then dateadd(hh, datediff(hh, 0, Somedate)+0, 0)
 else dateadd(mi,30,dateadd(hh, datediff(hh, 0, Somedate)+0, 0)) end
from #temp

изход

vCount  time
4   2009-05-12 11:00:00.000
4   2009-05-12 11:30:00.000
2   2009-05-12 12:00:00.000
2   2009-05-12 13:30:00.000
1   2009-05-12 14:00:00.000
1   2009-05-12 14:30:00.000
1   2009-05-12 15:00:00.000
1   2009-05-12 15:30:00.000


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server:XPATH заявката е неуспешна

  2. SQL Server v.Next :производителност STRING_AGG().

  3. използвайте „между“ с varchar (sql сървър)

  4. Мога ли да създам функция за еднократна употреба в скрипт или съхранена процедура?

  5. В SSIS как да получа броя на редовете, върнати от източника, които ТРЯБВА да бъдат обработени