Page 1 of 1

Ερώτηση SQL

Posted: Fri Sep 29, 2006 11:32 am
by Swtos
Καλημέρα!

Εχω την εξής απορία και θελω να μου πει καποιος αν γινεται το παρακάτω μονο με SQL, χωρις προγραμματισμό, ουτε καν stored procedures.

Εστω τα queries:

1)
SELECT ... COUNT(*)
FROM ...
WHERE A,B
GROUP BY...

2)
SELECT ... COUNT(*)
FROM ...
WHERE A,B,Γ
GROUP BY...

Και τα δύο ειναι ιδια αναφορικά με τα τμηματα SELECT & FROM & GROUP BY
Τα Α,Β,Γ ειναι συνθηκες. Προφανως το 2) ειναι πιο "περιοριστικό" αρα το
COUNT(*) του θα ειναι μικροτερο απο του 1).
Θέλω να υπολογισω το COUNT(*) του 2) προς το COUNT(*) του 1). Οποιος εχει καμια ιδέα ας πει!

Ευχαριστώ :)

Posted: Fri Sep 29, 2006 11:55 am
by nap
SQL Server (T-SQL)

Code: Select all

SELECT CAST((SELECT COUNT(*) ... [το δεύτερο]) AS FLOAT) / (SELECT COUNT(*) ... [το πρώτο])
Oracle (PL/SQL)

Code: Select all

SELECT (SELECT COUNT(*) ... [το δεύτερο]) / (SELECT COUNT(*) ... [το πρώτο]) FROM DUAL;

Posted: Fri Sep 29, 2006 12:05 pm
by salo
SELECT second / first
FROM
( SELECT ... COUNT(*) AS first
FROM ...
WHERE A,B
GROUP BY... ) Α ,

( SELECT ... COUNT(*) AS second
FROM ...
WHERE A,B,Γ
GROUP BY... ) Β
Άλλη ιδέα ..

Posted: Fri Sep 29, 2006 3:23 pm
by tsilochr
Σώτο ξεκαθάρισε τι θέλεις.

Α)Θες το Count.Β / Count.Α (κλάσμα)?
ή
Β) θες το count.Β από το Count.A (δλδ τομή συνόλων)?

Posted: Sat Sep 30, 2006 11:56 am
by Swtos
Το Α) θέλω, το κλάσμα. Παρεπιπτόντως, ξεχασα να πω οτι θελω να το κανω σε MySQL. Eυχαριστω κ τα αλλα παιδία για τις απαντήσεις τους :smt023