Here मैंने प्रश्न पूछने के बारे में प्रश्न पूछा।मूल्य> = सभी (v2 का चयन करें ...) मूल्य से अलग-अलग परिणाम उत्पन्न करता है (अधिकतम चयन करें (v2) ...)
आकस्मिक रूप से (एक उत्तर की मदद से) मैंने पाया कि समाधान को सही तरीके से कैसे बनाया जाए। समस्या यह है कि मुझे समझ में नहीं आता कि वे अलग-अलग परिणाम क्यों देते हैं।
तो, डेटाबेस इस स्कीमा है:
और मैं उच्चतम मूल्य के साथ PC
, Printer
और Laptop
से सभी मॉडलों के लिए खोज कर रहा हूँ। इन सभी तालिकाओं में गैर-अद्वितीय model
कॉलम हो सकता है, क्योंकि विभिन्न code
वाले आइटम समान मॉडल हो सकते हैं।
मेरे मूल समाधान था:
with model_price(model,price) as (
select model,price
from PC
union
select model,price
from Laptop
union
select model,price
from Printer
)
select model
from model_price
where price >= all(select price from model_price)
यह गलत परिणाम दे दी है - प्रणाली * Wrong number of records (less by 2)
लौट आए।
with model_price(model,price) as (
select model,price
from PC
union
select model,price
from Laptop
union
select model,price
from Printer
)
select model
from model_price
where price = (select max(price) from model_price)
तो, क्यों all
साथ समाधान अलग परिणाम पैदा करता है:
को सही समाधान जो काम करता है है?
एसक्यूएल इंजन के बारे में: Now we use Microsoft SQL Server 2012 on the rating stages, and MySQL 5.5.11, PostgreSQL 9.0, and Oracle Database 11g on the learn stage in addition.
तो मैं जो इंजन वास्तव में वे इस अभ्यास गधे करने के लिए उपयोग पता नहीं है।
डेटा में कोई भी 'एनयूएलएल'? '1 चुनें जहां 1> = सभी (नल यूनियन का चयन करें 0 का चयन करें)' कोई पंक्ति नहीं देता है। –
क्षमा करें, मुझे दूसरे डेटाबेस के लिए डेटा नहीं पता है (यह जानबूझकर उन लोगों के लिए बनाया गया है जो व्यायाम नहीं करते हैं)। मैं दूसरे डीबी पर प्रश्नों के परिणाम भी नहीं देख सकता, केवल गलत क्या है, उदाहरण के लिए। '* रिकॉर्ड्स की गलत संख्या (2 से कम)'। – ovgolovin