Blogi deweloperów PLD/FreeBSD

3.1.1MarcinGajda replied 2 weeks, 2 days after the incident

Wszystkie…

No tak – mają być wszystkie. Wobec tego biję się w piersi, rzeczywiście moje zapytanie nie daje poprawnego wyniku.

Mimo wszystko napisałbym to inaczej:

SELECT id_process
  FROM task
  WHERE status = 'completed'
  GROUP BY id_process
EXCEPT
SELECT id_process
  FROM task
  WHERE status <> 'completed'
  GROUP BY id_process

To zapytanie wciąż będzie szybsze w planie wykonania od Twojego. … reply

One Comment

3.1.1.1TomaszTrojanowski replied 2 weeks, 2 days after the incident

Nie jestem do końca przekonany, czy będzie szybsze. Nawet jeżeli tak, to najprawdopodobniej
SELECT DISTINCT id_process AS p1 FROM task
  WHERE status = 'completed' AND
  NOT EXISTS (SELECT * FROM task WHERE status <> 'completed'  AND id_process = p1);
będzie jeszcze szybsze. Ale to nie o to chodzi. … reply

Leave a Reply

You may have to login or register to comment if you haven't already.

About

Tomasz Trojanowski mieszka w Łańcucie, wraz z żoną Iwoną i synami Jakubem i Arkadiuszem. Pracuje jako administrator serwerów internetowych. W wolnych chwilach zajmuje się projektem PLD/FreeBSD.

Categories

1
1
6

r1 – 16 Feb 2007 – 10:07:37 – Main.MarcinGajda
Copyright © 1999-2008. Zawartość tego serwisu jest własnością osób współpracujących. Wyślij pomysły, pytania dotyczące serwisu.