sql >> Database teknologi >  >> RDS >> Sqlserver

Hvordan kan jeg vurdere denne tabel?

her er en prøvekode, der forklarer, hvordan du kan bruge en CASE-sætning. Du burde være i stand til at finde ud af, hvordan du foretager ændringerne i din kode

--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

for at se, hvordan dataene rent faktisk ser ud

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

output

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. Binær log fejl i mysql

  2. Hvorfor er PHP PDO DSN et andet format for MySQL versus PostgreSQL?

  3. MariaDB LIMIT-erklæring bringer mere end grænsen

  4. Tilslutning til MySQL-database ved hjælp af PHP fra en Android-enhed