---
title: "Ta reda på spelares ranking en viss datum"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/167234-ta-reda-på-spelares-ranking-en-viss-datum"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "The_Hulk"
published: "2007-12-13T13:26:50.000Z"
updated: "2007-12-16T21:42:37.000Z"
replies: 7
views: 466
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/167234-ta-reda-på-spelares-ranking-en-viss-datum"
---

# Ta reda på spelares ranking en viss datum

## #1 — The_Hulk, 2007-12-13T13:26Z

Hej!

Jag har en tabell som innehåller spelare och deras poäng för varje datum.

```
+------------+---------+-------+
| date       | player  | score |
+------------+---------+-------+
| 2007-12-01 | Pelle   | 126   |
| 2007-12-01 | Olle    | 104   |
| 2007-12-01 | Bertil  | 165   |
| 2007-12-02 | Pelle   | 129   |
| 2007-12-02 | Olle    | 113   |
| 2007-12-02 | Bertil  | 154   |
| 2007-12-03 | Pelle   | 146   |
| 2007-12-03 | Olle    | 135   |
| 2007-12-03 | Bertil  | 145   |
| 2007-12-04 | Pelle   | 151   |
| 2007-12-04 | Olle    | 155   |
| 2007-12-04 | Bertil  | 150   |
+------------+---------+-------+
```

soterat blir det så här:

```
2007-12-01
Bertil   165
Pelle    126
Olle     104

2007-12-02
Bertil  | 154
Pelle   | 129
Olle    | 113

2007-12-03
Pelle   | 146
Bertil  | 145
Olle    | 135

2007-12-04
Olle    | 155
Pelle   | 151
Bertil  | 150
```

Jag vill kunna se vilken placering en viss spelare hade ett visst datum. Hur får jag redan på spelarens placering när man sorterar efter högsta poäng?

För att få ut alla spelare i viss datum sorterade efter högsta poäng använder jag följande:

```
SELECT player, point FROM highscore WHERE date='2007-12-02' ORDER BY score DESC
```

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

## #2 — Peter S, 2007-12-13T13:53Z

Om två personer med lika många poäng anses hamna på samma plats:

```
SELECT player
     , point 
     , ( select count(*)+1 from highscore where date = '2007-12-02' and score > h.score ) as rank
  FROM highscore h
 WHERE date='2007-12-02' 
ORDER
    BY score DESC
```

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

## #3 — The_Hulk, 2007-12-13T14:11Z

hmm, det ville inte fungera för mig, fick inga träffar på det.

**/r**
ähh, var nog jag som använde fel datum. testar igen.

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

## #4 — The_Hulk, 2007-12-13T15:41Z

det fungerade som det skulle, en liten följdfråga.
om jag lägger till ett fält "rank" i tabellen, hur gör jag då för att uppdatera det fältet med spelarens placering den datumen?

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

## #5 — Peter S, 2007-12-13T16:43Z

Vilket DBMS?

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

## #6 — The_Hulk, 2007-12-14T08:09Z

Mysql ver 5.

**/r**

Hmm, kan man inte läsa från samma tabell som man vill uppdatera?

hittade precis detta i hjälpen för mysql 5

> Currently, you cannot update a table and select from the same table in a subquery.

Hur ska jag då lösa det?
måste jag skapa en temporär tabell där jag lägger över placeringen i och sen flyttar den till min highscore-tabell?

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

## #7 — The_Hulk, 2007-12-16T20:25Z

Ska jag skapa en ny tråd med frågan eller hoppas på att någon som kan hjälpa mig hittar den här?

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

## #8 — Peter S, 2007-12-16T21:42Z

Följande kanske kan vara av intresse:
<http://www.xaprb.com/blog/2006/06/23/how-to-select-from-an-update-target-in-mysql/>

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/167234-ta-reda-på-spelares-ranking-en-viss-datum
