[mysql]Wie weet hier iets voor?

Pagina: 1
Acties:

  • NaliXL
  • Registratie: Maart 2002
  • Laatst online: 30-07 19:19
Goedendag,

Ik probeer op een tabel van het phpOpenTracker systeem (www.phpopentracker.de) de volgende query los te laten :
code:
1
2
3
4
5
SELECT DISTINCT SUM(document_id), 
     COUNT(DISTINCT SUM(document_id)),
     accesslog_id
FROM altdomain_accesslog 
GROUP BY accesslog_id;

De altdomain_accesslog tabel ziet er als volgt uit :
code:
1
2
3
4
5
6
7
8
9
10
+----------------+------------------+------+-----+---------+-------+
| Field     | Type       | Null | Key | Default | Extra |
+----------------+------------------+------+-----+---------+-------+
| accesslog_id   | int(11)      |   | MUL | 0    |   |
| client_id | int(10) unsigned |    | MUL | 0    |   |
| timestamp | int(10) unsigned |    |     | 0    |   |
| document_id    | int(11)      |   | MUL | 0    |   |
| exit_target_id | int(11)      |   |     | 0    |   |
| entry_document | set('0','1')     |   |     |    |     |
+----------------+------------------+------+-----+---------+-------+

De inhoud van deze tabel is het resultaat van een de website-logger phpOpenTracker. Iedere gebruiker krijgt een accesslog_id, en ieder bezocht document een document_id.

Dus als gebruiker 1234 document 151515 3x, en document 161616 7x bezocht heeft, dan komt accesslog_id 1234 10x voor, 3x in combinatie met document_id 151515 en 7x in combinatie met document 161616.

Nou is mijn bedoeling alle unieke klikpaden uit de DB te selecteren, samen met het aantal keren dat ze voorkomen. Dat probeer ik door middel van een GROUP BY accesslog_id in combinatie met een SUM van document_id.

Deze sum resulteert dus in een vrijwel altijd uniek nummer voor ieder klikpad (al die doc-nummers zijn nogal grote random-nummers).

Wat ik nou uiteindelijk wil hebben is dat unieke pad nummer, het aantal keren dat dat unieke pad-nummer voorkomt, en een accesslog_id wat bij dat unieke pad-nummer hoort.

Zoals je ziet werkt de query niet. Is er misschien iemand die zo een betere oplossing weet? Of weet hoe de query wel moet?

Hartstikke bedankt! :Y)

Genoeg is meer dan veel, en tart den overvloed


  • DRvDijk
  • Registratie: Juni 2001
  • Laatst online: 12-02 15:52
Ongetest denk ik dat dit een goed resultaat geeft:
code:
1
2
3
4
5
6
7
8
SELECT
  client_id,
  document_id,
  COUNT(document_id)
FROM
  altdomain_accesslog
GROUP BY
  document_id;

[quote]
Op donderdag 27 juni 2002 15:52 schreef NaliXL het volgende:
Goedendag,
[..]
Hartstikke bedankt! :Y)
[/quote]

Groeten hoeft/mag niet hiero, om redenen die hier uitgelegd worden