|
| MySQL udtræk som driller Fra : Thomas Løjmann Jørge~ |
Dato : 09-09-04 16:30 |
|
Hej,
Jeg har en tabel som indeholder en masse data, det mest vigtige i
denne sag er flg;
ip, hostname, javascript, id
data kunne være
10.10.10.10, delta, 1, 33
10.10.10.10, delta, 1, 34
10.10.10.10, delta, 1, 35
247.42.154.77, gamma, 0, 36
40.45.77.120, nisse, 1, 37
247.42.154.77, gamma, 0, 38
247.42.154.77, gamma, 0, 39
40.45.77.120, nisse, 1, 40
40.45.77.120, nisse, 1, 41
10.10.10.10, delta, 1, 42
osv...
Det jeg skal, det er jeg skal bruge antal unikke brugere som hhv. har
0 og 1 i javascript feltet. Den skal bruge IP feltet til at sorter så
en IP kun bliver talt med en gang.
Resultater af dataen ovenfor skulle gerne blive
javascript 0 = 1
javascript 1 = 2
Det SQL jeg har skrevet er flg;
SELECT DISTINCT ip, javascript, COUNT(id) AS antal
FROM infostatic
GROUP BY javascript
ORDER BY javascript DESC
men den tæller alle rækker med, dvs. den tager den samme IP med flere
gange og det skal den ikke - nogle som kan hjælpe med at skrive et sql
statement der virker?
/Thomas
| |
Jan Bachman (09-09-2004)
| Kommentar Fra : Jan Bachman |
Dato : 09-09-04 17:15 |
|
>Resultater af dataen ovenfor skulle gerne blive
>
>javascript 0 = 1
>javascript 1 = 2
Måske noget i stil med dette:
select nest.javascript, count(nest.javascript) as antal
from (select distinct ip, javascript from infostatic) as nest
group by nest.javascript
order by nest.javascript desc
/Jan
| |
Thomas Løjmann Jørge~ (09-09-2004)
| Kommentar Fra : Thomas Løjmann Jørge~ |
Dato : 09-09-04 22:22 |
|
On Thu, 09 Sep 2004 18:15:02 +0200, Jan Bachman <jamen@davs.du> wrote:
Tak for svaret, dog kommer den med en fejl...
You have an error in your SQL syntax. Check the manual that
corresponds to your MySQL server version for the right syntax to use
near 'select distinct ip, javascript from infostatic) as nest
Nogle ide?
/Thomas
| |
Jan Bachman (09-09-2004)
| Kommentar Fra : Jan Bachman |
Dato : 09-09-04 23:08 |
|
>You have an error in your SQL syntax. Check the manual that
>corresponds to your MySQL server version for the right syntax to use
>near 'select distinct ip, javascript from infostatic) as nest
>
>Nogle ide?
Så vidt jeg ved er nested SQL først rigtig implementeret i MySQL 4.1.
Kører du en ældre?
/Jan
| |
Thomas Løjmann Jørge~ (09-09-2004)
| Kommentar Fra : Thomas Løjmann Jørge~ |
Dato : 09-09-04 23:19 |
|
On Fri, 10 Sep 2004 00:07:31 +0200, Jan Bachman <jamen@davs.du> wrote:
>Så vidt jeg ved er nested SQL først rigtig implementeret i MySQL 4.1.
>Kører du en ældre?
>
Det er en 4.0.20 jeg har... Hmm... kunne jo opgarder den - det tænker
jeg lige over, men er stadig interesseret i en løsnign der virker på
min nuværende version...
/T
| |
Jan Bachman (10-09-2004)
| Kommentar Fra : Jan Bachman |
Dato : 10-09-04 06:14 |
|
>Det er en 4.0.20 jeg har... Hmm... kunne jo opgarder den - det tænker
>jeg lige over, men er stadig interesseret i en løsnign der virker på
>min nuværende version...
Du kan jo bryde mit forslag op i to trin, og smide det nestede i en
temp-tabel, og derefter counte på den. Så er vi ude over nesting.
Noget i stil med dette:
create temporary table T (
ip varchar(50) not null,
js int not null,
primary key (ip,js)
)type=innodb
insert into T (ip,js)
select distinct jp,javascript as js
from infostatic;
select js, count(js) as antal
from T
group by js
order by js desc;
/Jan
| |
Jesper Juul-Mortense~ (10-09-2004)
| Kommentar Fra : Jesper Juul-Mortense~ |
Dato : 10-09-04 15:15 |
|
On Thu, 09 Sep 2004 17:29:55 +0200, Thomas Løjmann Jørgensen
<lojmann@lojmann.dk> wrote:
>nogle som kan hjælpe med at skrive et sql statement der virker?
Var det dette resultat du var ude efter?
SELECT DISTINCT javascript, COUNT(DISTINCT ip) AS antal FROM
infostatic GROUP BY javascript
/Jesper
| |
Thomas Løjmann Jørge~ (13-09-2004)
| Kommentar Fra : Thomas Løjmann Jørge~ |
Dato : 13-09-04 19:30 |
|
On Fri, 10 Sep 2004 16:14:39 +0200, Jesper Juul-Mortensen
<na@na.invalid> wrote:
>Var det dette resultat du var ude efter?
>
>SELECT DISTINCT javascript, COUNT(DISTINCT ip) AS antal FROM
>infostatic GROUP BY javascript
Hej Jesper,
Den virkede ikke for mig, der kom bare et resultat med 100% og en med
0% - men stærkt inspireret af det, fik jeg denne her tygget sammen som
virker for mig.
SELECT DISTINCT ip, COUNT(DISTINCT ip) AS antal FROM
infostatic GROUP BY JavaScript ORDER BY JavaScript ASC
Jeg har forsøgt at regne den efter og det ser ud til at vi er helt
enige om resultatet :)
1000 tak for hjælpen!
/Thomas
| |
|
|