Mysql
 sql >> база данни >  >> RDS >> Mysql

Клауза GROUP BY с псевдоним?

АКТУАЛИЗИРАНО2

  1. Изглежда, че не е необходимо да включвате TotalSales в GROUP BY. Като гледам вашата заявка, просто няма никакъв смисъл. Просто го изхвърлете от вътрешния избор.

  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      |
+-------------+-----------+----------------+-------------+

Ето SQLPiddle демонстрация



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql, транспониране/завъртане на ред в колона, избор на променлива

  2. jenkins се проваля при рестартиране на моя sql sudo:не присъства tty и не е посочена програма askpass Съжаляваме, опитайте отново.

  3. как да създадете MySql заявка за показване на текущо салдо от кредит и дебит, когато множество клиенти имат индивидуални салда

  4. как да влезете в mysql и да потърсите базата данни от терминала на Linux

  5. Дали да се използва ИМЕНА НА НАБОРИ