• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Kłopot w utworzeniu zapytania w sql

VPS Starter Arubacloud
+1 głos
172 wizyt
pytanie zadane 3 sierpnia 2017 w SQL, bazy danych przez raf123 Nowicjusz (130 p.)
zamknięte 3 sierpnia 2017 przez raf123
Witajcie.

W mojej bazie danych mam trzy tabele ; Dzialy, pracownicy, zaszeregowania.

Próbuje napisać zapytanie do zadania :

Wypisz nazwiska pracowników, którzy mają stawkę większą niż średnia stawka w ich dziale .

Moje zapytanie zwraca średnią dla wszystkich działów a nie dla każdego z osobna:

SELECT nazwisko,nazwa_dzialu, Avg(zarobki) as srednia_pensja
FROM pracownicy join dzialy on pracownicy.id_dzialu=dzialy.id_dzialu
where zarobki>(select AVG(zarobki) from dzialy join pracownicy on dzialy.id_dzialu=pracownicy.id_dzialu where nazwa_dzialu='Accountig' and nazwa_dzialu=' Research') and nazwa_dzialu='Sale'

GROUP BY nazwa_dzialu,nazwisko

 

Z góry dziękuję za pomoc
komentarz zamknięcia: Problem rozwiązany
komentarz 3 sierpnia 2017 przez vector Dyskutant (9,200 p.)

Mniej więcej ujdzie

CREATE TABLE IF NOT EXISTS `section` (
	`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
    PRIMARY KEY(`id`)
);

CREATE TABLE IF NOT EXISTS `employee` (
  `id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
  `section_id` INT UNSIGNED NOT NULL,
  `wage` DECIMAL(16,8) NOT NULL,
  PRIMARY KEY(`id`),
  FOREIGN KEY(`section_id`) REFERENCES `section`(`id`)
);

INSERT INTO `section` VALUES(NULL);
INSERT INTO `section` VALUES(NULL);

INSERT INTO `employee` VALUES(NULL, 1, 1);
INSERT INTO `employee` VALUES(NULL, 1, 2);
INSERT INTO `employee` VALUES(NULL, 1, 3);
INSERT INTO `employee` VALUES(NULL, 1, 4);
INSERT INTO `employee` VALUES(NULL, 1, 5);

INSERT INTO `employee` VALUES(NULL, 2, 0);
INSERT INTO `employee` VALUES(NULL, 2, 60);
INSERT INTO `employee` VALUES(NULL, 2, 100);

SELECT `id`
FROM `employee` AS e
WHERE `wage` > (
  SELECT SUM(`wage`)/COUNT(*)
  FROM `employee` AS ee
  WHERE ee.section_id = e.section_id
);

 

Podobne pytania

+1 głos
1 odpowiedź 463 wizyt
pytanie zadane 20 listopada 2016 w SQL, bazy danych przez MlodyJavaS Użytkownik (500 p.)
0 głosów
1 odpowiedź 274 wizyt
pytanie zadane 8 maja 2022 w SQL, bazy danych przez Blds Użytkownik (830 p.)
0 głosów
1 odpowiedź 1,180 wizyt
pytanie zadane 11 listopada 2017 w SQL, bazy danych przez Apocalipto Nowicjusz (120 p.)

92,452 zapytań

141,262 odpowiedzi

319,080 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...