sql >> Databáze >  >> RDS >> Mysql

Výběrový dotaz SQL pomocí funkcí spojení, seskupování a agregace

Nemůžete to udělat WHERE inc_amount=max(inc_amount) v klauzuli where použijte buď HAVING nebo to udělejte pod podmínkou připojení, zkuste místo toho toto:

SELECT 
  e.emp_id, 
  e.inc_date,
  t.TotalInc, 
  t.MaxIncAmount
FROM salary_increase AS i
INNER JOIN emp_table AS e ON i.emp_id=e.emp_id
INNER JOIN
(
   SELECT 
     emp_id,
     MAX(inc_amount)     AS MaxIncAmount, 
     COUNT(i.inc_amount) AS TotalInc
   FROM salary_increase
   GROUP BY emp_id
) AS t ON e.emp_id = t.emp_id AND e.inc_amount = t.MaxIncAmount;



  1. Jak přidat dny k datu v T-SQL

  2. SQL:Dynamický pohled s názvy sloupců na základě hodnot sloupců ve zdrojové tabulce

  3. Jak vybrat první řádek pro každou skupinu v MySQL?

  4. Chyba souboru MySQL/zápis (Errcode 28)