rowanarien
Nieuwe gebruiker
- Lid geworden
- 10 sep 2008
- Berichten
- 4
Hallo,
Ik heb volgend probleem:
Ik heb volgende database:
(naam van deze tabel is <temp1>)
ID X Status
-----------------------------------
1 a 5
1 a 5
1 a 6
2 a 8
2 a 5
3 a 5
4 a 7
4 a 7
4 a 8
waarbij Status => 5=laag, 6=medium, 7=hoog, 8= zeer hoog
Ik zou nu graag de volgende tabel bekomen:
ID X aantal Laag Medium Hoog Zeer Hoog
----------------------------------------------------------------------------------------------------
1 a 3 2 1 0 0
2 a 2 1 0 0 0
3 a 1 1 0 0 0
4 a 3 0 0 2 1
Ik had de volgende code bedacht, en deze werkt ook, maar van zodra ik grote hoeveelheden (meer dan 10 000 lijnen) moet doorzoeken dan crasht hij (of moet keilang berekenen)
CREATE TABLE temp2 AS(
SELECT ID, X
FROM temp1
GROUP BY ID); // creates a table with the ID's and the X
CREATE TABLE uitkomst AS(
SELECT temp2.ID, temp2.X,
(SELECT COUNT(*) FROM temp1 WHERE temp1.ID = temp2.ID)
AS "aantal",
(SELECT COUNT(*) FROM temp1 WHERE temp1.ID = temp2.ID
AND temp1.status = 5) as "laag",
(SELECT COUNT(*) FROM temp1 WHERE temp1.ID = temp1.ID
AND temp1.status = 6) as "medium",
(SELECT COUNT(*) FROM temp1 WHERE temp1.ID = temp2.ID
AND temp1.status = 7) AS "hoog",
(SELECT COUNT(*) FROM temp1 WHERE temp1.ID = temp2.ID
AND temp1.status = 8) AS "zeer hoog"
FROM temp2
GROUP BY ID);
Werkt perfect voor tables met minder dan +- 10 000 lijnen maar eens je erboven gaat..problems
Ik heb al vanalles geprobeerd, maar krijg het niet opgelost?
Als er iemand een idee moest hebben?
Groetjes en alvast bedankt
Rowan
Ik heb volgend probleem:
Ik heb volgende database:
(naam van deze tabel is <temp1>)
ID X Status
-----------------------------------
1 a 5
1 a 5
1 a 6
2 a 8
2 a 5
3 a 5
4 a 7
4 a 7
4 a 8
waarbij Status => 5=laag, 6=medium, 7=hoog, 8= zeer hoog
Ik zou nu graag de volgende tabel bekomen:
ID X aantal Laag Medium Hoog Zeer Hoog
----------------------------------------------------------------------------------------------------
1 a 3 2 1 0 0
2 a 2 1 0 0 0
3 a 1 1 0 0 0
4 a 3 0 0 2 1
Ik had de volgende code bedacht, en deze werkt ook, maar van zodra ik grote hoeveelheden (meer dan 10 000 lijnen) moet doorzoeken dan crasht hij (of moet keilang berekenen)
CREATE TABLE temp2 AS(
SELECT ID, X
FROM temp1
GROUP BY ID); // creates a table with the ID's and the X
CREATE TABLE uitkomst AS(
SELECT temp2.ID, temp2.X,
(SELECT COUNT(*) FROM temp1 WHERE temp1.ID = temp2.ID)
AS "aantal",
(SELECT COUNT(*) FROM temp1 WHERE temp1.ID = temp2.ID
AND temp1.status = 5) as "laag",
(SELECT COUNT(*) FROM temp1 WHERE temp1.ID = temp1.ID
AND temp1.status = 6) as "medium",
(SELECT COUNT(*) FROM temp1 WHERE temp1.ID = temp2.ID
AND temp1.status = 7) AS "hoog",
(SELECT COUNT(*) FROM temp1 WHERE temp1.ID = temp2.ID
AND temp1.status = 8) AS "zeer hoog"
FROM temp2
GROUP BY ID);
Werkt perfect voor tables met minder dan +- 10 000 lijnen maar eens je erboven gaat..problems
Ik heb al vanalles geprobeerd, maar krijg het niet opgelost?
Als er iemand een idee moest hebben?
Groetjes en alvast bedankt
Rowan