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

उपनाम के साथ ग्रुप बाय क्लॉज?

अपडेट किया गया2

  1. ऐसा लगता है कि आपको GROUP BY में TotalSales को शामिल करने की आवश्यकता नहीं है। आपकी क्वेरी को देखते हुए इसका कोई मतलब नहीं है। बस इसे आंतरिक चयन से हटा दें।

  2. उन पुस्तकों को शामिल करने के लिए जो बेची नहीं गई हैं, आपको बाहरी जुड़ाव का उपयोग करना होगा

कहा जा रहा है कि आपकी क्वेरी कुछ इस तरह दिख सकती है

SELECT COALESCE(author_id, 'All Authors') author_id
     , COALESCE(book_id, IF(author_id IS NULL, 'All Books', 'Subtotal')) book_id
     , COALESCE(total_quantity, 'No books') total_quantity
     , COALESCE(total_sales, 'No Sales') total_sales   
 FROM 
(    
 SELECT author_id 
      , b.book_id 
      , SUM(quantity) total_quantity  
      , SUM(quantity * order_price) total_sales   
   FROM book_authors b LEFT JOIN order_details d
     ON b.book_id = d.book_id
  WHERE author_sequence = 1           
  GROUP BY Author_id, Book_ID WITH ROLLUP  -- you don't need TotalSales here
) q;

नमूना आउटपुट:

+-------------+-----------+----------------+-------------+
| author_id   | book_id   | total_quantity | total_sales |
+-------------+-----------+----------------+-------------+
| 1           | 1         | 12             | 278.50      |
| 1           | 3         | No books       | No Sales    |
| 1           | Subtotal  | 12             | 278.50      |
| 3           | 2         | 5              | 75.75       |
| 3           | Subtotal  | 5              | 75.75       |
| All Authors | All Books | 17             | 354.25      |
+-------------+-----------+----------------+-------------+

यह रहा SQLFiddle डेमो



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मेरे php को बिना दोहराए mysql में इनपुट करें?

  2. MySQL के Select Last_Insert_ID की थ्रेड सुरक्षा

  3. लेन-देन के दौरान एक MYSQL तालिका में एक पंक्ति को लॉक करना

  4. एम:एन संबंध के साथ एसक्यूएल चयन

  5. MySQL में html/css/js जोड़ने का सबसे सुरक्षित तरीका क्या है?