Προς το περιεχόμενο

SQL Ερωτήματα


johnys20

Προτεινόμενες αναρτήσεις

Δημοσ.

ΚΑΠΟΙΟΣ ΒΟΗΘΕΙΑ

 

Να δώσετε εκφράσεις SQL για τα ακόλουθα ερωτήματα:

1. Να βρεθούν οι συγγραφείς (όνομα και η διεύθυνση email) που έχουν συμμετοχή σε περισσότερες από 50 δημοσιεύσεις.

2. Να βρεθούν όλες οι δημοσιεύσεις συνεδρίου (συγγραφείς, τίτλος δημοσίευσης, τίτλος συνεδρίου και χρονολογία συνεδρίου) που έχουν και τις δύο τις λέξεις κλειδιά “cultural db” και “information retrieval”.

3. Να βρεθούν οι δημοσιεύσεις περιοδικού (συγγραφείς, τίτλος δημοσίευσης, τίτλος περιοδικού, αριθμός τόμου (volume series), αριθμός τεύχους (issue number) και χρονολογία δημοσίευσης) στις οποίες οι συγγραφείς προέρχονται (affiliation) από το Ιόνιο Πανεπιστήμιο.

4. Να βρεθούν οι συγγραφείς (όνομα και η διεύθυνση email) που έχουν τουλάχιστον 2 δημοσιεύσεις σε περιοδικό και ενός κεφάλαιου σε βιβλίο. Στο abstract του κεφαλαίου θα πρέπει να περιέχεται η φράση “wireless ad-hoc network”

5. Για καθένα από τους βασικούς τύπους δημοσίευσης (βιβλίο, περιοδικό και μέρος βιβλίου) να βρεθεί το πλήθος των δημοσιεύσεων που περιέχει η βάση καθώς και το συνολικό πλήθος σελίδων των δημοσιεύσεων.

  • Απαντ. 33
  • Δημ.
  • Τελ. απάντηση
Δημοσ.

ΚΑΠΟΙΟΣ ΒΟΗΘΕΙΑ

 

Να δώσετε εκφράσεις SQL για τα ακόλουθα ερωτήματα:

1. Να βρεθούν οι συγγραφείς (όνομα και η διεύθυνση email) που έχουν συμμετοχή σε περισσότερες από 50 δημοσιεύσεις.

2. Να βρεθούν όλες οι δημοσιεύσεις συνεδρίου (συγγραφείς, τίτλος δημοσίευσης, τίτλος συνεδρίου και χρονολογία συνεδρίου) που έχουν και τις δύο τις λέξεις κλειδιά “cultural db” και “information retrieval”.

3. Να βρεθούν οι δημοσιεύσεις περιοδικού (συγγραφείς, τίτλος δημοσίευσης, τίτλος περιοδικού, αριθμός τόμου (volume series), αριθμός τεύχους (issue number) και χρονολογία δημοσίευσης) στις οποίες οι συγγραφείς προέρχονται (affiliation) από το Ιόνιο Πανεπιστήμιο.

4. Να βρεθούν οι συγγραφείς (όνομα και η διεύθυνση email) που έχουν τουλάχιστον 2 δημοσιεύσεις σε περιοδικό και ενός κεφάλαιου σε βιβλίο. Στο abstract του κεφαλαίου θα πρέπει να περιέχεται η φράση “wireless ad-hoc network”

5. Για καθένα από τους βασικούς τύπους δημοσίευσης (βιβλίο, περιοδικό και μέρος βιβλίου) να βρεθεί το πλήθος των δημοσιεύσεων που περιέχει η βάση καθώς και το συνολικό πλήθος σελίδων των δημοσιεύσεων.

 

Γιάννη πρώτον βάλε ελληνικά στον τίτλο. Δεύτερον θα κάνεις καμια ασκηση μονος σου; (βλ ΕΔΩ και ΕΔΩ). Για αυτό τις λενε ασκήσεις. Τρίτον να δίνεις σωστές και πλήρεις εκφωνήσεις.

 

Για το πρόβλημα σου (1)

>SELECT name,email FROM siggrafeis WHERE COUNT(dimosieuseis) > 50;

Δημοσ.

Γιάννη πρώτον βάλε ελληνικά στον τίτλο. Δεύτερον θα κάνεις καμια ασκηση μονος σου; (βλ ΕΔΩ και ΕΔΩ). Για αυτό τις λενε ασκήσεις. Τρίτον να δίνεις σωστές και πλήρεις εκφωνήσεις.

 

Για το πρόβλημα σου (1)

>SELECT name,email FROM siggrafeis WHERE COUNT(dimosieuseis) > 50;

HAVING COUNT...

 

@isay θες βοήθεια ή λύση στις ασκήσεις σου?

Δημοσ.
HAVING COUNT...

 

@isay θες βοήθεια ή λύση στις ασκήσεις σου?

 

συγκριτικά, αύξηση του θράσους σου, χρειάζεσαι isay ! :mrgreen:

 

ενώ οι ναυαγοί χρειάζονται σανίδα, έστω και βρεγμένη

 

 

.

Δημοσ.

το HAVING δε προϋποθέτει κι ένα GROUP BY;

 

Όχι! Το HAVING δεν είναι απαραίτητο να ακολουθεί κάποιο grouping για τον απλούστατο λόγο ότι, κάνει καταμέτρηση και οριοθετεί το επιστρεφόμενο resultset από το query. Η προϋπόθεση για να απαιτείται grouping προκειμένου να κάνεις χρήση της HAVING είναι όταν θες να μαζέψεις τιμές στην HAVING ... πχ ...

>
   SELECT Count(blah_0) as Blah_0_SumField, blah_1, blah_2
   FROM BlahTable
   GROUP BY blah_1, blah_2
   HAVING SUM(Blah_0_SumField) > 1

 

Ειδάλλως παίζεις έτσι:

 

>
   SELECT * FROM MyTable HAVING Mitsos > 1.70

 

 

... και φίλε Johnys20,,, τα ερωτήματα που έχεις ως ασκήσεις είναι απλούστατα! Αν ρίξεις μία ματιά στα βιβλία της σχολής σου (πρώτα), θα τα έχεις λύσει, αν όχι σε 10λεπτο, σου δίνω MAX 20 λεπτά ...

Δημοσ.

 

 

Ειδάλλως παίζεις έτσι:

 

>
   SELECT * FROM MyTable HAVING Mitsos > 1.70

 

 

 

Πολύ standard SQL η κατάσταση απο ότι βλέπω. To having clause πρέπει να αναφέρεται σε πεδίο το οποίο περιέχεται στο group by clause ή περιλαβάνεται σε aggregate function .Σε καμία περίπτωση δεν πρέπει να περιλαμβάνει πεδίο του select list που δεν είναι μέρος του group by(ασχέτως αν στην περίπτωση σου παρασκηνιακά είναι) και μάλιστα να αντικαθιστά τον ρόλο του where clause .

Δημοσ.

Γιάννη πρώτον βάλε ελληνικά στον τίτλο. Δεύτερον θα κάνεις καμια ασκηση μονος σου; (βλ ΕΔΩ και ΕΔΩ). Για αυτό τις λενε ασκήσεις. Τρίτον να δίνεις σωστές και πλήρεις εκφωνήσεις.

 

Για το πρόβλημα σου (1)

>SELECT name,email FROM siggrafeis WHERE COUNT(dimosieuseis) > 50;

ευχαριστω για την βοηθεια.αμα μπορεισ να με βοηθησεισ στο 5 ερωτημα τα αλλα τα εβγαλα

Δημοσ.

Χωρίς να έχω το σχήμα αν οι δημοσιευσεις είναι ένας πίνακας που η κάθε δημοσιευση κρατάει ως πληροφορία τον αριθμό των σελίδων και τον τύπο της τότε αν έχει τα ακόλουθα πεδία

 

>ΠΙΝΑΚΑΣ ΔΗΜΟΣΙΕΥΣΗ 
-------------------------------------------------------------------------
ΚΛΕΙΔΙ   ΤΥΠΟΣ_ΔΗΜΟΣΙΕΥΣΗΣ   ΑΡ_ΣΕΛΙΔΩΝ_ΔΗΜΟΣΙΕΥΣΗΣ   ΛΟΙΠΑ_ΠΕΔΙΑ........

 

τότε το query γίνεται

 

>
SELECT ΤΥΠΟΣ_ΔΗΜΟΣΙΕΥΣΗΣ , COUNT(*), SUM(ΑΡ_ΣΕΛΙΔΩΝ_ΔΗΜΟΣΙΕΥΣΗΣ)
FROM ΔΗΜΟΣΙΕΥΣΗ
GROUP BY ΤΥΠΟΣ_ΔΗΜΟΣΙΕΥΣΗΣ

 

Αν ο ΤΥΠΟΣ_ΔΗΜΟΣΙΕΥΣΗΣ είναι ξένο κλειδί κάνε ένα join να πάρεις την περιγραφή

 

Φυσικά καταλαβαίνεις ότι χωρίς σχήμα κανείς δεν μπορεί να σου απαντήσει συγκεκριμένα

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...