2011-01-25 12 views
5

मैं उन सभी मूल्यों से समूह करना चाहता हूं जो नकारात्मक हैं और जो सभी सकारात्मक हैं, कोई विचार यह कैसे करें?MySQL, सकारात्मक या नकारात्मक पर एक चुनिंदा क्वेरी में, मैं कैसे समूह कर सकता हूं?

उत्तर

11

साइन (फ़ील्ड) द्वारा ग्रुप काम करना चाहिए। इस तरह

+0

का उपयोग कर सकते हैं! +1 – Harish

0

कोशिश कुछ:

select count(*), IF(foo >= 0, "pos", "neg") as sign from test group by sign; 

जहां foo सकारात्मक या नकारात्मक मूल्यों के साथ स्तंभ है

संपादित करें: यदि आप शून्य मान सकारात्मक से अलग समझा चाहते स्टीफन के समाधान और अधिक सुरुचिपूर्ण और बेहतर है और नकारात्मक वाले

+0

मैं '>' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' 'के बजाय जाऊंगा - – Alnitak

+0

सहमत और तय। – Thilo

4
SELECT SUM(CASE WHEN SomeColumn < 0 THEN 1 ELSE 0 END) AS negative_values, 
     SUM(CASE WHEN SomeColumn >=0 THEN 1 ELSE 0 END) AS non_negative_values 
    FROM YourTable 
+0

हाँ मैं यह जवाब पसंद करूंगा! +1 – Harish

2

स्टीफन का समाधान अब तक का सबसे अच्छा जवाब जैसा दिखता है। यदि आप सकारात्मक संख्याओं के साथ 0 के लिए समूहित करना पसंद करेंगे, तो आप

GROUP BY `field` >= 0 
संबंधित मुद्दे