---
title: "Dygnsfördelning av inloggningar"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/21921-dygnsfördelning-av-inloggningar"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "kristoffer"
published: "2002-02-04T20:19:00.000Z"
updated: "2002-02-04T23:09:00.000Z"
replies: 4
views: 351
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/21921-dygnsfördelning-av-inloggningar"
---

# Dygnsfördelning av inloggningar

## #1 — kristoffer, 2002-02-04T20:19Z

Jag har ett smalldatetime-fält logLogindate som anger inloggningstiden för en besökare. Jag vill visa den procentuella fördelningen av inloggningar per timme. Tex:

```
00 12%
01 17%
.
.
22 24%
23 14%
```

Om jag skriver så här:

```
SELECT DATEPART(hour, logLogindate), COUNT(*)
FROM dbo.login
GROUP BY DATEPART(hour, logLogindate) WITH rollup
```

får jag fram antal inloggningar per timme. Men jag skulle vilja att de timmar då ingen har loggat in får värdet 0. Som det är nu finns ju inte de posterna.

\[Redigerat av kristoffer den 04 feb 2002\]

Permalänk: https://www.webforum.nu/p/21921

## #2 — LarsG, 2002-02-04T20:42Z

```
select h,count(logLogindate) from 
(select 0 as h union select 1 union select 2
 select 3 union select 4 union select 5
select 6 union select 7 union select 8
select 9 union select 10 union select 11
select 12 union select 13 union select 14
select 15 union select 16 union select 17
select 18 union select 19 union select 20
select 21 union select 22 union select 23) as hours left join

dbo.login on hours.h = DATEPART(hour, logLogindate)
GROUP BY h WITH rollup
```

Alternativt så kan du skapa en tabell och lägga in 24 poster med värdet 0 till 23 och joina mot den istället.

Permalänk: https://www.webforum.nu/p/353828

## #3 — kristoffer, 2002-02-04T20:57Z

Jag får: Incorrect syntax near the keyword 'SELECT'.
(DBMS = SQL Server).

Permalänk: https://www.webforum.nu/p/353829

## #4 — LarsG, 2002-02-04T21:03Z

slarvig i dag

```
select h,count(logLogindate) from 
(select 0 as h union select 1 union select 2 union
select 3 union select 4 union select 5 union 
select 6 union select 7 union select 8 union 
select 9 union select 10 union select 11 union 
select 12 union select 13 union select  14 union 
select 15 union select 16 union select 17 union 
select 18 union select 19 union select 20 union 
select 21 union select 22 union select 23) as hours left join
dbo.login on hours.h = DATEPART(hour, logLogindate)
GROUP BY h WITH rollup
```

Jo, jag såg att du har SQL server, annars hade jag inte skrivit så där då det inte är portabelt.

Permalänk: https://www.webforum.nu/p/353830

## #5 — kristoffer, 2002-02-04T23:09Z

Fungerar. Tackar.

Permalänk: https://www.webforum.nu/p/353831

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/21921-dygnsfördelning-av-inloggningar
