{"id":36671,"date":"2019-10-31T22:13:01","date_gmt":"2019-10-31T19:13:01","guid":{"rendered":"https:\/\/prohoster.info\/blog\/sql-zanimatelnye-zadachki\/"},"modified":"2019-10-31T22:13:01","modified_gmt":"2019-10-31T19:13:01","slug":"sql-zanimatelnye-zadachki","status":"publish","type":"post","link":"https:\/\/prohoster.info\/lv\/blog\/news\/sql-zanimatelnye-zadachki","title":{"rendered":"SQL. Interesantas uzdevumi","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Sveiki, Habr!<\/p>\n<p>Jau vair\u0101k nek\u0101 3 gadus m\u0101cu SQL da\u017e\u0101dos apm\u0101c\u012bbu centros, un viens no maniem nov\u0113rojumiem ir tas, ka studenti apg\u016bst un izprot SQL lab\u0101k, ja vi\u0146iem tiek izvirz\u012bti uzdevumi, nevis vienk\u0101r\u0161i st\u0101st\u012bts par iesp\u0113j\u0101m un teor\u0113tiskajiem pamatiem.<\/p>\n<p>\u0160aj\u0101 rakst\u0101 dal\u012b\u0161os ar savu uzdevumu sarakstu, ko dodu studentiem k\u0101 m\u0101jasdarbus un kurus kop\u012bgi risin\u0101m, kas noved pie dzi\u013cas un skaidras SQL izpratnes.<\/p>\n<p><img decoding=\"async\" alt=\"SQL. Interesantas uzdevumi\" src=\"\/wp-content\/uploads\/2019\/07\/283f472e0c382c0621ffc14e2ac06881.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSQL (\u02c8\u025bs\u02c8kju\u02c8\u025bl; ang\u013cu valod\u0101 structured query language \u2014 \u201estrukt\u016bras vaic\u0101jumu valoda\u201d) ir deklarat\u012bva programm\u0113\u0161anas valoda, ko izmanto datu izveidei, modific\u0113\u0161anai un p\u0101rvald\u012bbai rel\u0101ciju datub\u0101z\u0113, ko p\u0101rvalda atbilsto\u0161a datub\u0101zu p\u0101rvald\u012bbas sist\u0113ma. <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/SQL\">Uzzin\u0101t vair\u0101k\u2026 <\/a><\/noindex><\/p>\n<p>Par SQL varat las\u012bt no da\u017e\u0101diem <noindex><a rel=\"nofollow\" href=\"https:\/\/www.google.com\/search?q=SQL\">avotiem<\/a><\/noindex>.<br \/>\n\u0160\u012b raksta m\u0113r\u0137is nav m\u0101c\u012bt j\u016bs SQL no nulles.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nT\u0101tad, s\u0101ksim.<\/p>\n<p>S\u0101ksim izmantot visiem zin\u0101mo <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/oracle\/db-sample-schemas\/tree\/master\/human_resources\">HR sh\u0113mu<\/a><\/noindex> Oracle ar t\u0101s tabul\u0101m (<noindex><a rel=\"nofollow\" href=\"https:\/\/docs.oracle.com\/en\/database\/oracle\/oracle-database\/12.2\/comsc\/HR-sample-schema-table-descriptions.html\">Pla\u0161\u0101k<\/a><\/noindex>):<\/p>\n<p><img decoding=\"async\" alt=\"SQL. Interesantas uzdevumi\" src=\"\/wp-content\/uploads\/2019\/07\/b518c0bedd0d7bbeaedbcc4bd95079cd.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nAtz\u012bm\u0113\u0161u, ka m\u0113s apskat\u012bsim tikai uzdevumus uz SELECT. \u0160eit nav uzdevumu uz DML un DDL.<\/p>\n<h2>Uzdevumi<\/h2>\n<p>\n<b>Datu ierobe\u017eo\u0161ana un k\u0101rto\u0161ana<\/b><\/p>\n<p>Tabula Employees. Ieg\u016bt inform\u0101cijas sarakstu par visiem darbiniekiem <br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT * FROM employees\n<\/code><\/pre>\n<p>Darbinieku tabula. Ieg\u016bt visu darbinieku sarakstu ar v\u0101rdu 'David'<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT *\n  FROM employees\n WHERE first_name = 'David';\n<\/code><\/pre>\n<p>Darbinieku tabula. Ieg\u016bt visu darbinieku sarakstu ar job_id 'IT_PROG'<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT *\n  FROM employees\n WHERE job_id = 'IT_PROG'\n<\/code><\/pre>\n<p>Tabula Employees. Ieg\u016bt visu darbinieku sarakstu no 50. noda\u013cas (department_id) ar algu (salary), kas p\u0101rsniedz 4000<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT *\n  FROM employees\n WHERE department_id = 50 AND salary &gt; 4000;\n<\/code><\/pre>\n<p>Tabula Employees. Ieg\u016bt visu darbinieku sarakstu no 20. un 30. noda\u013cas (department_id)<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT *\n  FROM employees\n WHERE department_id = 20 OR department_id = 30;\n<\/code><\/pre>\n<p>Darbinieku tabula. Ieg\u016bt visu darbinieku sarakstu, kuru v\u0101rda p\u0113d\u0113j\u0101 burts ir 'a'<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT *\n  FROM employees\n WHERE first_name LIKE '%a';\n<\/code><\/pre>\n<p>Tabula Employees. Ieg\u016bt visu darbinieku sarakstu no 50. un 80. noda\u013cas (department_id), kuriem ir bonuss (v\u0113rt\u012bba kolonn\u0101 commission_pct nav tuk\u0161a)<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT *\n  FROM employees\n WHERE     (department_id = 50 OR department_id = 80)\n       AND commission_pct IS NOT NULL;\n<\/code><\/pre>\n<p>Darbinieku tabula. Ieg\u016bt visu darbinieku sarakstu, kuru v\u0101rd\u0101 ir vismaz 2 burti 'n'<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT *\n  FROM employees\n WHERE first_name LIKE '%n%n%';\n<\/code><\/pre>\n<p>Tabula Employees. Ieg\u016bt visu darbinieku sarakstu, kuru v\u0101rda garums p\u0101rsniedz 4 burtus<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT *\n  FROM employees\n WHERE first_name LIKE '%_____%';\n<\/code><\/pre>\n<p>Darbinieku tabula. Ieg\u016bt visu darbinieku sarakstu, kuru alga ir robe\u017e\u0101s no 8000 l\u012bdz 9000 (iek\u013caujot abas robe\u017eas)<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT *\n  FROM employees\n WHERE salary BETWEEN 8000 AND 9000;\n<\/code><\/pre>\n<p>Darbinieku tabula. Ieg\u016bt visu darbinieku sarakstu, kuru v\u0101rd\u0101 ir simbols '%'<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT *\n  FROM employees\n WHERE first_name LIKE '%%%' ESCAPE '';\n<\/code><\/pre>\n<p>Darbinieku tabula. Ieg\u016bt visu vad\u012bt\u0101ju ID sarakstu<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT DISTINCT manager_id\n  FROM employees\n WHERE manager_id IS NOT NULL;\n<\/code><\/pre>\n<p>Darbinieku tabula. Ieg\u016bt darbinieku sarakstu ar vi\u0146u amatiem form\u0101t\u0101: Donald(sh_clerk)<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT first_name || '(' || LOWER (job_id) || ')' employee FROM employees;\n<\/code><\/pre>\n<p>\n<b>Izmantojot vienas rindi\u0146as funkcijas, lai piel\u0101gotu izvadi<\/b><\/p>\n<p>Darbinieku tabula. Ieg\u016bt visu darbinieku sarakstu, kuru v\u0101rda garums p\u0101rsniedz 10 burtus<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT *\n  FROM employees\n WHERE LENGTH (first_name) &gt; 10;\n<\/code><\/pre>\n<p>Darbinieku tabula. Ieg\u016bt visu darbinieku sarakstu, kuru v\u0101rd\u0101 ir burts 'b' (neatkar\u012bgi no lielumam)<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT *\n  FROM employees\n WHERE INSTR (LOWER (first_name), 'b') &gt; 0;\n<\/code><\/pre>\n<p>Darbinieku tabula. Ieg\u016bt visu darbinieku sarakstu, kuru v\u0101rd\u0101 ir vismaz 2 burti 'a'<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT *\n  FROM employees\n WHERE INSTR (LOWER (first_name),'a',1,2) &gt; 0;\n<\/code><\/pre>\n<p>Darbinieku tabula. Ieg\u016bt visu darbinieku sarakstu, kuru alga ir dal\u0101ma ar 1000<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT *\n  FROM employees\n WHERE MOD (salary, 1000) = 0;\n<\/code><\/pre>\n<p>Darbinieku tabula. Ieg\u016bt pirmo 3 ciparu da\u013cu darbinieka telefona numur\u0101, ja numurs ir form\u0101t\u0101 XXX.XXX.XXXX<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT phone_number, SUBSTR (phone_number, 1, 3) new_phone_number\n  FROM employees\n WHERE phone_number LIKE '___.___.____';\n<\/code><\/pre>\n<p>Departamentu tabula. Ieg\u016bt pirmo v\u0101rdu no departamenta nosaukuma tiem, kuriem nosaukum\u0101 ir vair\u0101k nek\u0101 viens v\u0101rds<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT department_name,\n       SUBSTR (department_name, 1, INSTR (department_name, ' ')-1)\n           first_word\n  FROM departments\n WHERE INSTR (department_name, ' ') &gt; 0;\n<\/code><\/pre>\n<p>Darbinieku tabula. Ieg\u016bt darbinieku v\u0101rdus bez pirm\u0101 un p\u0113d\u0113j\u0101 burta<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT first_name, SUBSTR (first_name, 2, LENGTH (first_name) - 2) new_name\n  FROM employees;\n<\/code><\/pre>\n<p>Darbinieku tabula. Ieg\u016bt visu darbinieku sarakstu, kuru v\u0101rda p\u0113d\u0113j\u0101 burts ir 'm' un v\u0101rds ir gar\u0101ks par 5<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT *\n  FROM employees\n WHERE SUBSTR (first_name, -1) = 'm' AND LENGTH(first_name) &gt; 5;\n<\/code><\/pre>\n<p>Dual tabula. Ieg\u016bt n\u0101kam\u0101s piektdienas datumu<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT NEXT_DAY (SYSDATE, 'FRIDAY') next_friday FROM DUAL;\n<\/code><\/pre>\n<p>Darbinieku tabula. Ieg\u016bt visu darbinieku sarakstu, kuri str\u0101d\u0101 uz\u0146\u0113mum\u0101 vair\u0101k nek\u0101 17 gadus<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT *\n  FROM employees\n WHERE MONTHS_BETWEEN (SYSDATE, hire_date) \/ 12 &gt; 17;\n<\/code><\/pre>\n<p>Darbinieku tabula. Ieg\u016bt visu darbinieku sarakstu, kuru telefona numura p\u0113d\u0113j\u0101 cipars ir nep\u0101ra un sast\u0101v no 3 cipariem, kas ir atdal\u012bti ar punktu<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT *\n  FROM employees\n WHERE     MOD (SUBSTR (phone_number, -1), 2) != 0\n       AND INSTR (phone_number,'.',1,3) = 0;\n<\/code><\/pre>\n<p>Darbinieku tabula. Ieg\u016bt visu darbinieku sarakstu, kuru job_id v\u0113rt\u012bb\u0101 p\u0113c z\u012bmes '_' ir vismaz 3 simboli, bet \u0161\u012b v\u0113rt\u012bba p\u0113c '_' nav 'CLERK'<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT *\n  FROM employees\n WHERE     LENGTH (SUBSTR (job_id, INSTR (job_id, '_') + 1)) &gt; 3\n       AND SUBSTR (job_id, INSTR (job_id, '_') + 1) != 'CLERK';\n<\/code><\/pre>\n<p>Darbinieku tabula. Ieg\u016bt visu darbinieku sarakstu, nomainot PHONE_NUMBER v\u0113rt\u012bb\u0101 visas '.' uz '-'<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT phone_number, REPLACE (phone_number, '.', '-') new_phone_number\n  FROM employees;\n<\/code><\/pre>\n<p>\n<b>Izmantojot konversijas funkcijas un nosac\u012bjuma izteiksmes<\/b><\/p>\n<p>Darbinieku tabula. Ieg\u016bt visu darbinieku sarakstu, kuri s\u0101ka str\u0101d\u0101t pirmaj\u0101 m\u0113ne\u0161a dien\u0101 (jebkur\u0101).<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT *\n  FROM employees\n WHERE TO_CHAR (hire_date, 'DD') = '01';\n<\/code><\/pre>\n<p>Darbinieku tabula. Ieg\u016bt visu darbinieku sarakstu, kuri s\u0101ka str\u0101d\u0101t 2008. gad\u0101<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT *\n  FROM employees\n WHERE TO_CHAR (hire_date, 'YYYY') = '2008';\n<\/code><\/pre>\n<p>DUAL tabula. Par\u0101d\u012bt r\u012btdienas datumu form\u0101t\u0101: R\u012btdiena ir Otr\u0101 janv\u0101ra diena.<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT TO_CHAR (SYSDATE, 'fm\"\"R\u012btdiena ir \"\"Ddspth \"\"diena no\"\" M\u0113nesis') info\n  FROM DUAL;\n<\/code><\/pre>\n<p>Darbinieku tabula. Ieg\u016bt visu darbinieku sarakstu un katra darb\u0101 st\u0101\u0161an\u0101s datumu form\u0101t\u0101: 21. j\u016bnijs, 2007.<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT first_name, TO_CHAR (hire_date, 'fmddth \"\"no\"\" M\u0113nesis, YYYY') hire_date\n  FROM employees;\n<\/code><\/pre>\n<p>Darbinieku tabula. Ieg\u016bt visu darbinieku sarakstu ar palielin\u0101tu alg\u0101m par 20%. Algu par\u0101d\u012bt ar dol\u0101ra simbolu.<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT first_name, TO_CHAR (salary + salary * 0.20, 'fm$999,999.00') new_salary\n  FROM employees;\n<\/code><\/pre>\n<p>Darbinieku tabula. Ieg\u016bt visu darbinieku sarakstu, kuri s\u0101ka str\u0101d\u0101t 2007. gada febru\u0101r\u012b.<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT *\n  FROM employees\n WHERE hire_date BETWEEN TO_DATE ('01.02.2007', 'DD.MM.YYYY')\n                     AND LAST_DAY (TO_DATE ('01.02.2007', 'DD.MM.YYYY'));\n\nSELECT *\n  FROM employees\n WHERE to_char(hire_date,'MM.YYYY') = '02.2007'; \n<\/code><\/pre>\n<p>DUAL tabula. Ieg\u016bt aktu\u0101lo datumu, + sekundi, + min\u016bti, + stundu, + dienu, + m\u0113nesi, + gadu.<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT SYSDATE now,\n       SYSDATE + 1 \/ (24 * 60 * 60)     plus_second,\n       SYSDATE + 1 \/ (24 * 60)          plus_minute,\n       SYSDATE + 1 \/ 24                 plus_hour,\n       SYSDATE + 1                      plus_day,\n       ADD_MONTHS (SYSDATE, 1)          plus_month,\n       ADD_MONTHS (SYSDATE, 12)         plus_year\n  FROM DUAL;\n<\/code><\/pre>\n<p>Darbinieku tabula. Ieg\u016bt visu darbinieku sarakstu ar piln\u0101m alg\u0101m (salary + commission_pct(%)) form\u0101t\u0101: $24,000.00.<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT first_name, salary, TO_CHAR (salary + salary * NVL (commission_pct, 0), 'fm$99,999.00') full_salary\n  FROM employees;\n<\/code><\/pre>\n<p>Darbinieku tabula. Ieg\u016bt visu darbinieku sarakstu un inform\u0101ciju par bonusu esam\u012bbu algas zi\u0146\u0101 (J\u0101\/N\u0113).<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT first_name, commission_pct, NVL2 (commission_pct, 'Yes', 'No') has_bonus\n  FROM employees;\n<\/code><\/pre>\n<p>Darbinieku tabula. Ieg\u016bt katra darbinieka algas l\u012bmeni: Zem 5000 tiek uzskat\u012bts par zemu l\u012bmeni, 5000 vai vair\u0101k un maz\u0101k nek\u0101 10000 tiek uzskat\u012bts par norm\u0101lu l\u012bmeni, 10000 vai vair\u0101k tiek uzskat\u012bts par augstu l\u012bmeni.<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT first_name,\n       salary,\n       CASE\n           WHEN salary = 5000 AND salary &lt; 10000 THEN &#039;Norm\u0101la&#039;\n           ELSE &#039;Augsta&#039;\n       END salary_level\n  FROM employees;\n<\/code><\/pre>\n<p>Tabula Countries. Par katru valsti par\u0101d\u012bt re\u0123ionu, kur\u0101 t\u0101 atrodas: 1-Eiropa, 2-Amerika, 3-\u0100zija, 4-Afrika (bez Join)<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT country_name country,\n       DECODE (region_id,\n               1, 'Eiropa',\n               2, 'Amerika',\n               3, '\u0100zija',\n               4, 'Afrika',\n               'Nezin\u0101ms')\n           region\n  FROM countries;\n\nSELECT country_name\n           country,\n       CASE region_id\n           WHEN 1 THEN 'Eiropa'\n           WHEN 2 THEN 'Amerika'\n           WHEN 3 THEN '\u0100zija'\n           WHEN 4 THEN 'Afrika'\n           ELSE 'Nezin\u0101ms'\n       END\n           region\n  FROM countries;\n<\/code><\/pre>\n<p>\n<b>Azi\u0146u apkopoto datu izmanto\u0161ana ar grup\u0113\u0161anas funkcij\u0101m<\/b><\/p>\n<p>Tabula Employees. Ieg\u016bt zi\u0146ojumu pa department_id ar minim\u0101lo un maksim\u0101lo alg\u0101m, agr\u0101ko un v\u0113l\u0101ko darba uzs\u0101k\u0161anas datumu un darbinieku skaitu. K\u0101rtot p\u0113c darbinieku skaita (dilsto\u0161i)<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">  SELECT department_id,\n         MIN (salary) min_salary,\n         MAX (salary) max_salary,\n         MIN (hire_date) min_hire_date,\n         MAX (hire_date) max_hire_date,\n         COUNT (*) count\n    FROM employees\nGROUP BY department_id\nORDER BY count(*) DESC;\n<\/code><\/pre>\n<p>Tabula Employees. Cik darbinieku v\u0101rdi s\u0101kas ar vienu un to pa\u0161u burtu? K\u0101rtot p\u0113c skaita. R\u0101d\u012bt tikai t\u0101s, kur skaits ir liel\u0101ks par 1<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT SUBSTR (first_name, 1, 1) first_char, COUNT (*)\n    FROM employees\nGROUP BY SUBSTR (first_name, 1, 1)\n  HAVING COUNT (*) &gt; 1\nORDER BY 2 DESC;\n<\/code><\/pre>\n<p>Tabula Employees. Cik darbinieku str\u0101d\u0101 vien\u0101 un taj\u0101 pa\u0161\u0101 departament\u0101 un sa\u0146em vien\u0101das algas?<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT department_id, salary, COUNT (*)\n    FROM employees\nGROUP BY department_id, salary\n  HAVING COUNT (*) &gt; 1;\n<\/code><\/pre>\n<p>Tabula Employees. Ieg\u016bt zi\u0146ojumu cik darbinieku pie\u0146emti katru ned\u0113\u013cas dienu. K\u0101rtot p\u0113c skaita<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT TO_CHAR (hire_date, 'Day') day, COUNT (*)\n    FROM employees\nGROUP BY TO_CHAR (hire_date, 'Day')\nORDER BY 2 DESC;\n<\/code><\/pre>\n<p>Tabula Employees. Ieg\u016bt zi\u0146ojumu cik darbinieku pie\u0146emti pa gadiem. K\u0101rtot p\u0113c skaita<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT TO_CHAR (hire_date, 'YYYY') year, COUNT (*)\n    FROM employees\nGROUP BY TO_CHAR (hire_date, 'YYYY');\n<\/code><\/pre>\n<p>Tabula Employees. Ieg\u016bt departamentu skaitu, kur\u0101 ir darbinieki<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT COUNT (COUNT (*)) department_count\n    FROM employees\n   WHERE department_id IS NOT NULL\nGROUP BY department_id;\n<\/code><\/pre>\n<p>Tabula Employees. Ieg\u016bt department_id sarakstu, kur\u0101 str\u0101d\u0101 vair\u0101k nek\u0101 30 darbinieku<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">  SELECT department_id\n    FROM employees\nGROUP BY department_id\n  HAVING COUNT (*) &gt; 30;\n<\/code><\/pre>\n<p>Tabula Employees. Ieg\u016bt department_id sarakstu un noapa\u013cotu vid\u0113jo algas apm\u0113ru katr\u0101 departament\u0101. <br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">  SELECT department_id, ROUND (AVG (salary)) avg_salary\n    FROM employees\nGROUP BY department_id;\n<\/code><\/pre>\n<p>Tabula Countries. Ieg\u016bt region_id sarakstu ar valstu nosaukumu kop\u0113j\u0101 burtu summa, kas ir liel\u0101ka par 60<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">  SELECT region_id\n    FROM countries\nGROUP BY region_id\n  HAVING SUM (LENGTH (country_name)) &gt; 60;\n<\/code><\/pre>\n<p>Tabula Employees. Ieg\u016bt department_id sarakstu, kur\u0101 str\u0101d\u0101 darbinieki ar vair\u0101k\u0101m (&gt;1) job_id.<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">  SELECT department_id\n    FROM employees\nGROUP BY department_id\n  HAVING COUNT (DISTINCT job_id) &gt; 1;\n<\/code><\/pre>\n<p>Tabula Employees. Ieg\u016bt manager_id sarakstu, kuriem pak\u013cauto skaits ir liel\u0101ks par 5 un visu vi\u0146a pak\u013cauto algas summa p\u0101rsniedz 50000.<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">  SELECT manager_id\n    FROM employees\nGROUP BY manager_id\n  HAVING COUNT (*) &gt; 5 AND SUM (salary) &gt; 50000;\n<\/code><\/pre>\n<p>Tabula Employees. Ieg\u016bt manager_id sarakstu, kuru vid\u0113j\u0101 alga visiem vi\u0146a pak\u013cautajiem ir robe\u017e\u0101s no 6000 l\u012bdz 9000, kuri nesa\u0146em bonusus (commission_pct ir tuk\u0161s).<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">  SELECT manager_id, AVG (salary) avg_salary\n    FROM employees\n   WHERE commission_pct IS NULL\nGROUP BY manager_id\n  HAVING AVG (salary) BETWEEN 6000 AND 9000;\n<\/code><\/pre>\n<p>Darbinieku tabula. Ieg\u016bt maksim\u0101lo algu no visiem darbiniekiem, kuriem job_id beidzas ar v\u0101rdu 'CLERK'<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT MAX (salary) max_salary\n  FROM employees\n WHERE job_id LIKE '%CLERK';\n\nSELECT MAX (salary) max_salary\n  FROM employees\n WHERE SUBSTR (job_id, -5) = 'CLERK';\n<\/code><\/pre>\n<p>Tabula Employees. Ieg\u016bt maksim\u0101lo algu starp vis\u0101m vid\u0113j\u0101m alg\u0101m pa departamentiem.<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">  SELECT MAX (AVG (salary))\n    FROM employees\nGROUP BY department_id;\n<\/code><\/pre>\n<p>Tabula Employees. Ieg\u016bt darbinieku skaitu ar vien\u0101du burtiem v\u0101rd\u0101. R\u0101d\u012bt tikai tos, kuriem v\u0101rds ir gar\u0101ks par 5 un darbinieku skaits ar t\u0101du v\u0101rdu p\u0101rsniedz 20. K\u0101rtot p\u0113c v\u0101rda garuma.<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">  SELECT LENGTH (first_name), COUNT (*)\n    FROM employees\nGROUP BY LENGTH (first_name)\n  HAVING LENGTH (first_name) &gt; 5 AND COUNT (*) &gt; 20\nORDER BY LENGTH (first_name);\n\n  SELECT LENGTH (first_name), COUNT (*)\n    FROM employees\n   WHERE LENGTH (first_name) &gt; 5\nGROUP BY LENGTH (first_name)\n  HAVING COUNT (*) &gt; 20\nORDER BY LENGTH (first_name);\n<\/code><\/pre>\n<p>\n<b>Datu att\u0113lo\u0161ana no vair\u0101kiem galdiem, izmantojot savienojumus.<\/b><\/p>\n<p>Tabula Employees, Departments, Locations, Countries, Regions. Ieg\u016bt re\u0123ionu sarakstu un darbinieku skaitu katr\u0101 re\u0123ion\u0101.<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">  SELECT region_name, COUNT (*)\n    FROM employees e\n         JOIN departments d ON (e.department_id = d.department_id)\n         JOIN locations l ON (d.location_id = l.location_id)\n         JOIN countries c ON (l.country_id = c.country_id)\n         JOIN regions r ON (c.region_id = r.region_id)\nGROUP BY region_name;\n<\/code><\/pre>\n<p>Tabula Employees, Departments, Locations, Countries, Regions. Ieg\u016bt detaliz\u0113tu inform\u0101ciju par katru darbinieku:<br \/>\nFirst_name, Last_name, Department, Job, Street, Country, Region.<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT First_name,\n       Last_name,\n       Department_name,\n       Job_id,\n       street_address,\n       Country_name,\n       Region_name\n  FROM employees e\n       JOIN departments d ON (e.department_id = d.department_id)\n       JOIN locations l ON (d.location_id = l.location_id)\n       JOIN countries c ON (l.country_id = c.country_id)\n       JOIN regions r ON (c.region_id = r.region_id);\n<\/code><\/pre>\n<p>Tabula Employees. R\u0101d\u012bt visus vad\u012bt\u0101jus, kuriem pak\u013caut\u012bb\u0101 ir vair\u0101k nek\u0101 6 darbinieku.<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">  SELECT man.first_name, COUNT (*)\n    FROM employees emp JOIN employees man ON (emp.manager_id = man.employee_id)\nGROUP BY man.first_name\n  HAVING COUNT (*) &gt; 6;\n<\/code><\/pre>\n<p>Tabula Employees. R\u0101d\u012bt visus darbiniekus, kuriem nav pak\u013caut\u012bbas.<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT emp.first_name\n  FROM employees  emp\n       LEFT JOIN employees man ON (emp.manager_id = man.employee_id)\n WHERE man.FIRST_NAME IS NULL;\n\nSELECT first_name\n  FROM employees\n WHERE manager_id IS NULL;\n<\/code><\/pre>\n<p>Tabula Employees, Job_history. Tabul\u0101 Employee ir uzglab\u0101ti visi darbinieki. Tabul\u0101 Job_history ir darbinieki, kuri pametu\u0161i uz\u0146\u0113mumu. Ieg\u016bt zi\u0146ojumu par visiem darbiniekiem un vi\u0146u statusu uz\u0146\u0113mum\u0101 (Str\u0101d\u0101 vai pametis uz\u0146\u0113mumu ar izie\u0161anas datumu).<br \/>\nIsClosed = 0 AND Canceled = 0 AND Enabled = 0<br \/>\nfirst_name | status<br \/>\nJennifer | Pameta uz\u0146\u0113mumu 2006. gada 31. decembr\u012b<br \/>\nClara | Pa\u0161laik str\u0101d\u0101<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT first_name,\n       NVL2 (\n           end_date,\n           TO_CHAR (end_date, 'fm\"\"Pameta uz\u0146\u0113mumu\"\" DD \"\"m\u0113nes\u012b\"\" YYYY'),\n           'Pa\u0161laik str\u0101d\u0101')\n           status\n  FROM employees e LEFT JOIN job_history j ON (e.employee_id = j.employee_id);\n<\/code><\/pre>\n<p>Tabula Employees, Departaments, Locations, Countries, Regions. Ieg\u016bt darbinieku sarakstu, kuri dz\u012bvo Eirop\u0101 (region_name).<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\"> SELECT first_name\n  FROM employees\n       JOIN departments USING (department_id)\n       JOIN locations USING (location_id)\n       JOIN countries USING (country_id)\n       JOIN regions USING (region_id)\n WHERE region_name = 'Europe';\n \n SELECT first_name\n  FROM employees  e\n       JOIN departments d ON (e.department_id = d.department_id)\n       JOIN locations l ON (d.location_id = l.location_id)\n       JOIN countries c ON (l.country_id = c.country_id)\n       JOIN regions r ON (c.region_id = r.region_id)\n WHERE region_name = 'Europe';\n<\/code><\/pre>\n<p>Tabula Employees, Departaments. R\u0101d\u012bt visus departamentus, kuros str\u0101d\u0101 vair\u0101k par 30 darbinieku.<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT department_name, COUNT (*)\n    FROM employees e JOIN departments d ON (e.department_id = d.department_id)\nGROUP BY department_name\n  HAVING COUNT (*) &gt; 30;\n<\/code><\/pre>\n<p>Tabula Employees, Departaments. R\u0101d\u012bt visus darbiniekus, kuri nav iesaist\u012bti nevien\u0101 departament\u0101.<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT first_name\n  FROM employees  e\n       LEFT JOIN departments d ON (e.department_id = d.department_id)\n WHERE d.department_name IS NULL;\n\nSELECT first_name\n  FROM employees\n WHERE department_id IS NULL;\n<\/code><\/pre>\n<p>Tabula Employees, Departaments. R\u0101d\u012bt visus departamentus, kuros nav neviena darbinieka.<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT department_name\n  FROM employees  e\n       RIGHT JOIN departments d ON (e.department_id = d.department_id)\n WHERE first_name IS NULL;\n<\/code><\/pre>\n<p>Tabula Employees. R\u0101d\u012bt visus darbiniekus, kuriem nav neviena pak\u013caut\u012bb\u0101.<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT man.first_name\n  FROM employees  emp\n       RIGHT JOIN employees man ON (emp.manager_id = man.employee_id)\n WHERE emp.FIRST_NAME IS NULL;\n<\/code><\/pre>\n<p>Tabula Employees, Jobs, Departaments. R\u0101d\u012bt darbiniekus form\u0101t\u0101: First_name, Job_title, Department_name.<br \/>\nIsClosed = 0 AND Canceled = 0 AND Enabled = 0<br \/>\nFirst_name | Job_title | Department_name<br \/>\nDonald | Shipping | Clerk Shipping<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT first_name, job_title, department_name\n  FROM employees  e\n       JOIN jobs j ON (e.job_id = j.job_id)\n       JOIN departments d ON (d.department_id = e.department_id);\n<\/code><\/pre>\n<p>Tabula Employees. Ieg\u016bt darbinieku sarakstu, kuru vad\u012bt\u0101ji ir uzs\u0101ku\u0161i darbu 2005. gad\u0101, bet pa\u0161i darbinieki uzs\u0101ku\u0161i darbu pirms 2005. gada.<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT emp.*\n  FROM employees emp JOIN employees man ON (emp.manager_id = man.employee_id)\n WHERE     TO_CHAR (man.hire_date, 'YYYY') = '2005'\n       AND emp.hire_date &lt; TO_DATE (&#039;01012005&#039;, &#039;DDMMYYYY&#039;);\n<\/code><\/pre>\n<p>Darba tabula. Sa\u0146emt darbinieku sarakstu, kuru mened\u017eeri ir uz\u0146emti darb\u0101 janv\u0101ra m\u0113nes\u012b jebkur\u0101 gad\u0101 un \u0161o darbinieku amatu nosaukums ir gar\u0101ks par 15 simboliem.<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT emp.*\n  FROM employees emp\n       JOIN employees man ON (emp.manager_id = man.employee_id)\n       JOIN jobs j ON (emp.job_id = j.job_id)\n WHERE TO_CHAR (man.hire_date, 'MM') = '01' AND LENGTH (j.job_title) &gt; 15;\n<\/code><\/pre>\n<p>\n<b>Izmantojot apak\u0161vaic\u0101jumus, lai atrisin\u0101tu vaic\u0101jumus<\/b><\/p>\n<p>Darba tabula. Sa\u0146emt darbinieku sarakstu ar gar\u0101ko v\u0101rdu.<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT *\n  FROM employees\n WHERE LENGTH (first_name) =\n       (SELECT MAX (LENGTH (first_name)) FROM employees);\n<\/code><\/pre>\n<p>Darba tabula. Sa\u0146emt darbinieku sarakstu, kuru alga ir liel\u0101ka par visu darbinieku vid\u0113jo algu.<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT *\n  FROM employees\n WHERE salary &gt; (SELECT AVG (salary) FROM employees);\n<\/code><\/pre>\n<p>Darba tabula, noda\u013cas, vietas. Sa\u0146emt pils\u0113tu, kur\u0101 darbinieki kop\u0101 nopelna vismaz\u0101k.<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT city\n    FROM employees e\n         JOIN departments d ON (e.department_id = d.department_id)\n         JOIN locations l ON (d.location_id = l.location_id)\nGROUP BY city\n  HAVING SUM (salary) =\n         (  SELECT MIN (SUM (salary))\n              FROM employees e\n                   JOIN departments d ON (e.department_id = d.department_id)\n                   JOIN locations l ON (d.location_id = l.location_id)\n          GROUP BY city);\n<\/code><\/pre>\n<p>Darba tabula. Sa\u0146emt darbinieku sarakstu, kuru mened\u017eers sa\u0146em algu virs 15000.<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT *\n  FROM employees\n WHERE manager_id IN (SELECT employee_id\n                        FROM employees\n                       WHERE salary &gt; 15000)\n<\/code><\/pre>\n<p>Tabula Employees, Departaments. R\u0101d\u012bt visus departamentus, kuros nav neviena darbinieka.<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT *\n  FROM departments\n WHERE department_id NOT IN (SELECT department_id\n                               FROM employees\n                              WHERE department_id IS NOT NULL);\n<\/code><\/pre>\n<p>Darba tabula. Par\u0101d\u012bt visus darbiniekus, kuri nav mened\u017eeri.<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT *\n  FROM employees\n WHERE employee_id NOT IN (SELECT manager_id\n                             FROM employees\n                            WHERE manager_id IS NOT NULL)\n<\/code><\/pre>\n<p>Tabula Employees. R\u0101d\u012bt visus vad\u012bt\u0101jus, kuriem pak\u013caut\u012bb\u0101 ir vair\u0101k nek\u0101 6 darbinieku.<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT *\n  FROM employees e\n WHERE (SELECT COUNT (*)\n          FROM employees\n         WHERE manager_id = e.employee_id) &gt; 6;\n<\/code><\/pre>\n<p>Darba tabula. Par\u0101d\u012bt darbiniekus, kuri str\u0101d\u0101 IT noda\u013c\u0101.<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT *\n  FROM employees\n WHERE department_id = (SELECT department_id\n                          FROM departments\n                         WHERE department_name = 'IT');\n<\/code><\/pre>\n<p>Tabula Employees, Jobs, Departaments. R\u0101d\u012bt darbiniekus form\u0101t\u0101: First_name, Job_title, Department_name.<br \/>\nIsClosed = 0 AND Canceled = 0 AND Enabled = 0<br \/>\nFirst_name | Job_title | Department_name<br \/>\nDonald | Shipping | Clerk Shipping<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT first_name,\n       (SELECT job_title\n          FROM jobs\n         WHERE job_id = e.job_id)\n           job_title,\n       (SELECT department_name\n          FROM departments\n         WHERE department_id = e.department_id)\n           department_name\n  FROM employees e;\n<\/code><\/pre>\n<p>Tabula Employees. Ieg\u016bt darbinieku sarakstu, kuru vad\u012bt\u0101ji ir uzs\u0101ku\u0161i darbu 2005. gad\u0101, bet pa\u0161i darbinieki uzs\u0101ku\u0161i darbu pirms 2005. gada.<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT *\n  FROM employees\n WHERE     manager_id IN (SELECT employee_id\n                            FROM employees\n                           WHERE TO_CHAR (hire_date, 'YYYY') = '2005')\n       AND hire_date &lt; TO_DATE (&#039;01012005&#039;, &#039;DDMMYYYY&#039;);\n<\/code><\/pre>\n<p>Darba tabula. Sa\u0146emt darbinieku sarakstu, kuru mened\u017eeri ir uz\u0146emti darb\u0101 janv\u0101ra m\u0113nes\u012b jebkur\u0101 gad\u0101 un \u0161o darbinieku amatu nosaukums ir gar\u0101ks par 15 simboliem.<br \/>\n<b class=\"spoiler_title\">Risin\u0101jums<\/b><\/p>\n<pre><code class=\"sql\">SELECT *\n  FROM employees e\n WHERE     manager_id IN (SELECT employee_id\n                            FROM employees\n                           WHERE TO_CHAR (hire_date, 'MM') = '01')\n       AND (SELECT LENGTH (job_title)\n              FROM jobs\n             WHERE job_id = e.job_id) &gt; 15;\n<\/code><\/pre>\n<p>\n<b>Uz \u0161o br\u012bdi viss.<\/b><\/p>\n<p>Ceru, ka uzdevumi bija interesanti un aizraujo\u0161i. <br \/>\nP\u0113c iesp\u0113jas papildin\u0101\u0161u \u0161o uzdevumu sarakstu.<br \/>\nAr\u012b b\u016b\u0161u pateic\u012bgs par jebk\u0101diem koment\u0101riem un ieteikumiem.<\/p>\n<p>P.S.: Ja k\u0101dam ien\u0101k pr\u0101t\u0101 interesants uzdevums par SELECT, rakstiet koment\u0101ros, pievieno\u0161u to sarakstam.<\/p>\n<p>Paldies.<br \/>\n<br \/>Avots: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/461567\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439, \u0425\u0430\u0431\u0440! \u0412\u043e\u0442 \u0443\u0436\u0435 \u0431\u043e\u043b\u0435\u0435 3-\u0445 \u043b\u0435\u0442 \u044f \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u044e SQL \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u0442\u0440\u0435\u043d\u0438\u043d\u0433 \u0446\u0435\u043d\u0442\u0440\u0430\u0445, \u0438 \u043e\u0434\u043d\u0438\u043c \u0438\u0437 \u043c\u043e\u0438\u0445 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0439 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u043e, \u0447\u0442\u043e \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u044b \u043e\u0441\u0432\u0430\u0438\u0432\u0430\u044e\u0442 \u0438 \u043f\u043e\u043d\u0438\u043c\u0430\u044e\u0442 SQL \u043b\u0443\u0447\u0448\u0435, \u0435\u0441\u043b\u0438 \u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u0435\u0440\u0435\u0434 \u043d\u0438\u043c\u0438 \u0437\u0430\u0434\u0430\u0447\u0443, \u0430 \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044f\u0445 \u0438 \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043e\u0441\u043d\u043e\u0432\u0430\u0445. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u043f\u043e\u0434\u0435\u043b\u044e\u0441\u044c \u0441 \u0432\u0430\u043c\u0438 \u0441\u0432\u043e\u0438\u043c \u0441\u043f\u0438\u0441\u043a\u043e\u043c \u0437\u0430\u0434\u0430\u0447, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u044f \u0434\u0430\u044e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":27465,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-36671","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439, \u0425\u0430\u0431\u0440! \u0412\u043e\u0442 \u0443\u0436\u0435 \u0431\u043e\u043b\u0435\u0435 3-\u0445 \u043b\u0435\u0442 \u044f \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u044e SQL \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u0442\u0440\u0435\u043d\u0438\u043d\u0433 \u0446\u0435\u043d\u0442\u0440\u0430\u0445, \u0438 \u043e\u0434\u043d\u0438\u043c \u0438\u0437 \u043c\u043e\u0438\u0445 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0439 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u043e, \u0447\u0442\u043e \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u044b \u043e\u0441\u0432\u0430\u0438\u0432\u0430\u044e\u0442 \u0438 \u043f\u043e\u043d\u0438\u043c\u0430\u044e\u0442 SQL \u043b\u0443\u0447\u0448\u0435, \u0435\u0441\u043b\u0438 \u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u0435\u0440\u0435\u0434 \u043d\u0438\u043c\u0438 \u0437\u0430\u0434\u0430\u0447\u0443, \u0430 \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/lv\/blog\/news\/sql-zanimatelnye-zadachki\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"lv_LV\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47SQL. \u0417\u0430\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u043a\u0438 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439, \u0425\u0430\u0431\u0440! \u0412\u043e\u0442 \u0443\u0436\u0435 \u0431\u043e\u043b\u0435\u0435 3-\u0445 \u043b\u0435\u0442 \u044f \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u044e SQL \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u0442\u0440\u0435\u043d\u0438\u043d\u0433 \u0446\u0435\u043d\u0442\u0440\u0430\u0445, \u0438 \u043e\u0434\u043d\u0438\u043c \u0438\u0437 \u043c\u043e\u0438\u0445 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0439 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u043e, \u0447\u0442\u043e \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u044b \u043e\u0441\u0432\u0430\u0438\u0432\u0430\u044e\u0442 \u0438 \u043f\u043e\u043d\u0438\u043c\u0430\u044e\u0442 SQL \u043b\u0443\u0447\u0448\u0435, \u0435\u0441\u043b\u0438 \u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u0435\u0440\u0435\u0434 \u043d\u0438\u043c\u0438 \u0437\u0430\u0434\u0430\u0447\u0443, \u0430 \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/lv\/blog\/news\/sql-zanimatelnye-zadachki\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:13:01+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:13:01+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47SQL. Aizraujo\u0161i uzdevumi | ProHoster","description":"Sveiki, Habr! Jau vair\u0101k nek\u0101 3 gadus m\u0101cu SQL da\u017e\u0101dos apm\u0101c\u012bbu centros, un viens no maniem nov\u0113rojumiem ir t\u0101ds, ka studenti apg\u016bst un saprot SQL lab\u0101k, ja vi\u0146iem tiek uzdots uzdevums, nevis vienk\u0101r\u0161i.","canonical_url":"https:\/\/prohoster.info\/lv\/blog\/news\/sql-zanimatelnye-zadachki","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"lv_LV","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47SQL. \u0417\u0430\u043d\u0438\u043c\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u043a\u0438 | ProHoster","og:description":"\u0417\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0439, \u0425\u0430\u0431\u0440! \u0412\u043e\u0442 \u0443\u0436\u0435 \u0431\u043e\u043b\u0435\u0435 3-\u0445 \u043b\u0435\u0442 \u044f \u043f\u0440\u0435\u043f\u043e\u0434\u0430\u044e SQL \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u0442\u0440\u0435\u043d\u0438\u043d\u0433 \u0446\u0435\u043d\u0442\u0440\u0430\u0445, \u0438 \u043e\u0434\u043d\u0438\u043c \u0438\u0437 \u043c\u043e\u0438\u0445 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0439 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u043e, \u0447\u0442\u043e \u0441\u0442\u0443\u0434\u0435\u043d\u0442\u044b \u043e\u0441\u0432\u0430\u0438\u0432\u0430\u044e\u0442 \u0438 \u043f\u043e\u043d\u0438\u043c\u0430\u044e\u0442 SQL \u043b\u0443\u0447\u0448\u0435, \u0435\u0441\u043b\u0438 \u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u0435\u0440\u0435\u0434 \u043d\u0438\u043c\u0438 \u0437\u0430\u0434\u0430\u0447\u0443, \u0430 \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e.","og:url":"https:\/\/prohoster.info\/lv\/blog\/news\/sql-zanimatelnye-zadachki","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:13:01+00:00","article:modified_time":"2019-10-31T19:13:01+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"36671","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-22 04:21:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:40:23","updated":"2026-01-22 04:21:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts\/36671","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/comments?post=36671"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts\/36671\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/media\/27465"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/media?parent=36671"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/categories?post=36671"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/tags?post=36671"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}