PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

केवल विशेष विभागों से संबंधित उपयोगकर्ताओं का चयन करें

यह एक रिलेशनल डिवीजन है जिसमें कोई अवशेष नहीं है (RDNR) संकट। इसे देखें लेख ड्वेन कैंप द्वारा जो इस तरह की समस्या के कई समाधान प्रदान करता है।

पहला समाधान

SQL Fiddle

SELECT empId
FROM (
    SELECT
        empID, cc = COUNT(DISTINCT department)
    FROM employe
    WHERE department IN('Y', 'Z')
    GROUP BY empID
)t
WHERE
    t.cc = 2
    AND t.cc = (
        SELECT COUNT(*)
        FROM employe
        WHERE empID = t.empID
    )

दूसरा समाधान

SQL Fiddle

SELECT e.empId
FROM employe e
WHERE e.department IN('Y', 'Z')
GROUP BY e.empID
HAVING
    COUNT(e.department) = 2
    AND COUNT(e.department) = (SELECT COUNT(*) FROM employe WHERE empID = e.empId)

GROUP BY using का उपयोग किए बिना और HAVING :

SELECT DISTINCT e.empID
FROM employe e
WHERE
    EXISTS(
        SELECT 1 FROM employe WHERE department = 'Z' AND empID = e.empID
    )
    AND EXISTS(     
        SELECT 1 FROM employe WHERE department = 'Y' AND empID = e.empID
    )
    AND NOT EXISTS(
        SELECT 1 FROM employe WHERE department NOT IN('Y', 'Z') AND empID = e.empID
    )


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. नल के साथ एक SQLite डेटाबेस को Heroku पर पुश करें?

  2. Postgres . में वर्ष के साथ Db से पिछले 12 महीनों का डेटा प्राप्त करें

  3. रिश्तों की गिनती के आधार पर परिणाम कैसे समूहित करें

  4. c++ पोस्टग्रेज टाइमस्टैम्प को समय क्षेत्र के बिना time_t . में बदलें

  5. क्या पोस्टग्रेज अपडेट पर पूरी पंक्ति को फिर से लिखता है?