---
title: "SUM (tror jag...)"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/52739-sum-tror-jag"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Eclipse"
published: "2002-09-10T06:39:30.000Z"
updated: "2002-09-10T15:39:11.000Z"
replies: 10
views: 304
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/52739-sum-tror-jag"
---

# SUM (tror jag...)

## #1 — Eclipse, 2002-09-10T06:39Z

<http://www.w3schools.com/sql/sql_groupby.asp>

På denna sidan finns lite kod som jag tänkte man kunde ha i en TOP 10 most wanted links.

```
[clickCounter]
intID
dteCreated
intFaqID
```

Var börjar jag?? Jag vill ha de tio mest besökta länkarna den senaste veckan...

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

## #2 — LarsG, 2002-09-10T12:08Z

Varför sum?

```
select top 10 * from links order by clickCounter desc
```

eller hur ligger saker lagrade?

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

## #3 — Eclipse, 2002-09-10T13:06Z

Det där kommer att bli fel!

TOP 10 betyder de 10 översta posterna! Om folk klickat på en länk 11 gånger kommer de 10 första posterna enbart innehålla pekare (intFaqID) till samma post... No good!

\*\*\*
Så här är uppgiften på Svenska:

Sammanställ antalet träffar den senaste veckan. Lista varje post som fått flest träffar **en**  gång, samt räkna gärna ut hur många träffar en viss post fick...

Alltså, varje gång man klickar på en länk skapas en ny INSERT INTO.

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

## #4 — LarsG, 2002-09-10T13:35Z

Jo, jag anade att det låg åt det hållet

```
select top 10 intfaqid,count(*) from clickcounter group by intfaqid order by 2 desc
```

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

## #5 — Eclipse, 2002-09-10T13:42Z

Det ser bättre ut. Jag återkommer...

Jag har också ett förslag som innehåller count.

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

## #6 — Eclipse, 2002-09-10T14:19Z

```
'SQL = "SELECT TOP 10 cc.intFaqID, COUNT(*) FROM clickCounter cc GROUP BY intFaqID ORDER BY 2 DESC;"
'SQL = "SELECT TOP 10 cc.intFaqID, COUNT(*) FROM clickCounter cc GROUP BY cc.intFaqID ORDER BY 2 DESC;"
'SQL = "SELECT TOP 10 cc.intFaqID, COUNT(*) FROM clickCounter cc GROUP BY cc.intFaqID ORDER BY 2 DESC;"
SQL = "SELECT TOP 10 cc.intFaqID, COUNT(*), faq.x_ID FROM clickCounter cc, faq GROUP BY cc.intFaqID ORDER BY 2 DESC;"
```

Nej du... jag får inte i hop det när man blandar in ytterligare en tabell. DSessutom visas inte alls TOP 10 utan alla poster uppfyller kriteriet...

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

## #7 — LarsG, 2002-09-10T14:36Z

Alla kolumner i select-listan (som inte ingår i en aggregatfunktion (count, sum etc)) måste vara med i group by.

Top fungerar så att den även tar med de som är lika (med avseende på det som finns i order by)

Om du har 1000 länkar och 9 har visats 2 gånger och de övriga 1 gång, så kommer du att få med alla poster. Så är det i Access-världen. Lägg till en extra kolumn i order by

```
SQL = "SELECT TOP 10 cc.intFaqID, COUNT(*) FROM clickCounter cc GROUP BY intFaqID ORDER BY 2 DESC, 1"
```

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

## #8 — Eclipse, 2002-09-10T14:40Z

Det här blir ju fan bara värre och värre... Ingenting fungerar ju längre!

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

\[Microsoft\]\[ODBC Microsoft Access Driver\] Syntax error (missing operator) in query expression 'intFaqID WHERE dteCreated \> #2002-09-09 16:42:11#'.

/top_10.asp, line 32

```
SQL = "SELECT TOP 10 intFaqID, COUNT(intFaqID) FROM clickCounter  " _
&  " GROUP BY intFaqID WHERE dteCreated > #" & dateAdd("w", -1, now()) & "# ORDER BY 2 DESC, 1;"
```

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

## #9 — LarsG, 2002-09-10T14:47Z

group by skall vara efter where och före order by

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

## #10 — Eclipse, 2002-09-10T15:03Z

OK, deal!

Jättebra!

\*\*\*
SQL = "SELECT TOP 10 cc.intFaqID, COUNT(cc.intFaqID), **faq.x_subject** FROM clickCounter cc, faq  " \_
& " WHERE cc.dteCreated \> #" & dateAdd("w", -1, now()) & "# AND " \_ 
& " cc.intFaqID = faq.x_ID GROUP BY cc.intFaqID ORDER BY 2 DESC, 1;"

\*\*\*
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

\[Microsoft\]\[ODBC Microsoft Access Driver\] You tried to execute a query that does not include the specified expression 'x_subject' as part of an aggregate function.

/top_10.asp, line 36

Jag blir helt galen!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Jag har testat lite olika varianter men det går ju inte att få med en post från den andra tabellen!!! Det MÅSTE ju bara funka!!

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

## #11 — LarsG, 2002-09-10T15:39Z

> Alla kolumner i select-listan (som inte ingår i en aggregatfunktion (count, sum etc)) måste vara med i group by.

```
SQL = "SELECT TOP 10 cc.intFaqID, COUNT(cc.intFaqID), faq.x_subject FROM clickCounter cc, faq " _ 
& " WHERE cc.dteCreated > #" & dateAdd("w", -1, now()) & "# AND " _ 
& " cc.intFaqID = faq.x_ID GROUP BY cc.intFaqID,faq.x_subject  ORDER BY 2 DESC, 1"
```

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/52739-sum-tror-jag
