AMcoder - javascript, python, java, html, php, sql

SQL Հարցման համապատասխանող աղյուսակ 1-ին 2-րդ աղյուսակին

Ես ունեմ երկու սեղան JOB և EMP; արժեքներն այսպիսին են

CREATE TABLE JOB (JOBID SMALLINT UNIQUE NOT NULL,JOBNAME CHAR(15));
CREATE TABLE EMP(EMPID SMALLINT, JOBID SMALLINT, SAL SMALLINT, CITYID SMALLINT);

INSERT INTO JOB(JOBID, JOBNAME) VALUES
        ( 1, 'DEVELOPMENT'),
        (2, 'DEVELOPMENT'),
        (3,'TESTING'),
        (4,'TESTING'),
        (7,'TESTING'),
        (9,'RESEARCH'),
        (8,'HR');

INSERT INTO EMP (EMPID , JOBID, SAL,CITYID) VALUES
   (  100,1,1000,10),
   (  200,2,2000,10),
   (  300,1,2500,20),
   (  400,3,1000,10),
   (  500,6,3000,10),
   (  600,8,1000,30),
   (  700,8,2000,10)
;

Ես ուզում եմ ցուցադրել բոլոր աշխատատեղերի քանակը և միջին աշխատավարձերը. աշխատանքի անվան համար, եթե jobid-ը գոյություն չունի, ապա ցուցադրեք 0

Տվյալ cityid-ի ( Emp աղյուսակ) համար վերցրեք բոլոր jobid-ները յուրաքանչյուր աշխատանքի անվանման համար (աշխատանքի աղյուսակից) և համընկնեք Emp աղյուսակում, եթե առկա է ցուցադրման թիվը (Emp աղյուսակում առկա աշխատատեղերի քանակը) և հաշվառման և avgsal-ի համար՝ avgsal ևս 0: արդյունքը պետք է լինի աշխատանքի աղյուսակում ներկայացված աշխատանքների անունների հերթականությամբ: Արդյունքը պետք է լինի այսպիսին

Cityid  jobname        count avg-sal
10       development    2     1500
10       TESTING        1     1000
10       RESEARCH       0      0
10       HR             1      2000
total                   4      1500
20      development     1      2500
20      Testing         0      0
20      Research        0      0
20      HR              0      0
Total                   1     2500
Grand Total             5    1700

Ես փորձեցի միացումների միջոցով, բայց ճիշտ չաշխատեցի; Ավելի լավ է օգտագործել միացումներ, թե՞ կուրսոր:

24.02.2019

Պատասխանները:


1

Սա այն է, ինչ դուք ցանկանում եք:

select 10 as cityid, jobname, count(e.empid) as cnt,
       avg(e.sal)
from jobname j left join
     emp e
     on e.jobid = j.jobid and e.cityid = 10
group by grouping sets (jobname), () );
24.02.2019
  • Հարցման արդյունքը այսպիսին է 10 ԶԱՐԳԱՑՈՒՄ 2 1500 10 HR 1 2000 10 ՀԵՏԱԶՈՏՈՒԹՅՈՒՆ 0 NULL 10 ԹԵՍՏՈՒՄ 1 1000 Աշխատանքի անունները ըստ աղյուսակի արժեքների հերթականության չեն: և հանրագումարները չեն ցուցադրվում: Եթե ​​ես ուզում եմ ցուցադրել cityid 10 և 20-ի տվյալները, եթե 20-ը նույնպես ավելացնել cityid-ին, իսկ խմբավորումների հավաքածուներում, ապա այն չի ցուցադրում cityid-ները և արդյունքները սպասվածի նման չեն: 24.02.2019
  • Նոր նյութեր

    Օգտագործելով Fetch Vs Axios.Js-ը՝ HTTP հարցումներ կատարելու համար
    JavaScript-ը կարող է ցանցային հարցումներ ուղարկել սերվեր և բեռնել նոր տեղեկատվություն, երբ դա անհրաժեշտ լինի: Օրինակ, մենք կարող ենք օգտագործել ցանցային հարցումը պատվեր ներկայացնելու,..

    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար
    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար Ինչպե՞ս հանգստացնել ձեր միտքը և աշխատեցնել ձեր պրոցեսորը: Ինչպես մնալ հանգիստ և զարգանալ ճնշման տակ...

    Մեքենայի ուսուցում բանկային և ֆինանսների ոլորտում
    Բարդ, խելացի անվտանգության համակարգերը և հաճախորդների սպասարկման պարզեցված ծառայությունները բիզնեսի հաջողության բանալին են: Ֆինանսական հաստատությունները, մասնավորապես, պետք է առաջ մնան կորի..

    Ես AI-ին հարցրի կյանքի իմաստը, այն ինչ ասում էր, ցնցող էր:
    Այն պահից ի վեր, երբ ես իմացա Արհեստական ​​ինտելեկտի մասին, ես հիացած էի այն բանով, թե ինչպես է այն կարողանում հասկանալ մարդկային նորմալ տեքստը, և այն կարող է առաջացնել իր սեփական արձագանքը դրա..

    Ինչպես սովորել կոդավորումը Python-ում վագրի պես:
    Սովորելու համար ծրագրավորման նոր լեզու ընտրելը բարդ է: Անկախ նրանից, թե դուք սկսնակ եք, թե առաջադեմ, դա օգնում է իմանալ, թե ինչ թեմաներ պետք է սովորել: Ծրագրավորման լեզվի հիմունքները, դրա..

    C++-ի օրական բիթ(ե) | Ամենաերկար պալինդրոմային ենթաշարը
    C++ #198-ի ամենօրյա բիթ(ե), Ընդհանուր հարցազրույցի խնդիր. Ամենաերկար պալինդրոմային ենթատող: Այսօր մենք կանդրադառնանք հարցազրույցի ընդհանուր խնդրին. Ամենաերկար palindromic substring...

    Kydavra ICAReducer՝ ձեր տվյալների ծավալայինությունը նվազեցնելու համար
    Ի՞նչ է ICAReducer-ը: ICAReducer-ն աշխատում է հետևյալ կերպ. այն նվազեցնում է նրանց միջև բարձր փոխկապակցված հատկանիշները մինչև մեկ սյունակ: Բավականին նման է PCAreducer-ին, չնայած այն..