Sem descrição.
16/10/2023
Publico
COUNT
SELECT
COUNT(employee_id) AS count_employees,
AVG(salary) AS avg_salary
FROM employee;
SUM
→ a soma dos valoresMAX
→ o valor máximo do conjunto de valoresMIN
→ o valor mínimo do conjunto de valoresAVG
→ a média dos valoresProjetar a soma dos salários, o salário máximo, o salário mínimo e a média dos salários
SELECT SUM(salary) AS sum_salary,
MAX(salary) AS max_salary,
MIN(salary) AS min_salary,
AVG(salary) AS avg_salary
FROM employees;
Resultado:
sum_salary | max_salary | min_salary | avg_salary |
---|---|---|---|
23000.03 | 12000.00 | 1000.00 | 3500.00 |
Recuperar a quantidade de colaboradores com cargo IT_PROG
SELECT COUNT(e.employee_id) AS count_it_prog
FROM employees e
WHERE e.job_id = 'IT_PROG';
GROUP BY
Exemolo: Recuperar o salário médio dos colaboradores por cargo
SELECT job_id, AVG(salary) AS avg_salary_job
FROM employees
GROUP BY job_id;
job_id | avg_salary_job |
---|---|
AD_PRES | 23200.00 |
AD_VP | 12023.23 |
IT_PROG | 14400.00 |
HAVING
Recuperar o código de cada cargo em que existam mais de dois colaboradores
SELECT E.JOB_ID,
COUNT(E.EMPLOYEE_ID) AS COUNT_EMP_JOB
FROM EMPLOYEES E
GROUP BY E.JOB_ID
HAVING COUNT(E.EMPLOYEE_ID) > 2;
LIKE
O operador LIKE permite aplicar condições de comparação sobre partes de uma cadeia de caracteres. Dois wildcards (caracteres reservados) são normalmente utilizados:
%
substitui um número qualquer de caracteres_
substitui um único caractere.'abc' LIKE 'abc' -- (true)
'abc' LIKE 'a%' -- (true)
'abc' LIKE '_b_' -- (true)
'abc' LIKE 'c' -- (false)
'Abc' LIKE 'a%' -- (false)
SQL-601. Recuperar o nome dos departamentos que possuem a palavra 'Sales'
SELECT DEPARTMENT_ID, DEPARTMENT_NAME
FROM DEPARTMENTS
WHERE DEPARTMENT_NAME LIKE '%Sales%';
ILIKE
Esse operador ignora o case da palavra
'abc' LIKE 'abc' -- (true)
'abc' LIKE 'a%' -- (true)
'abc' LIKE '_b_' -- (true)
'abc' LIKE 'c' -- (false)
'Abc' LIKE 'a%' -- (true)
SIMILAR TO
O operador SIMILAR TO
permite aplicar expressões regulares na comparação entre conjunto de caracteres. Wildcards (caracteres reservados) aplicados:
|
representa o ou exclusivo*
representa a repetição dos itens anteriores (zero ou n vezes)+
representa a repetição dos itens anteriores (uma ou n vezes)?
indica a repetição do item zero ou um tempo anterior.{m}
representa a repetição dos itens anteriores (m vezes){m,}
representa a repetição dos itens anteriores (m ou mais vezes){m,n}
representa a repetição dos itens anteriores (pelo menos m, e não mais de n vezes)()
utilizado para agrupar os itens[]
representa um conjunto de símbolos, substitui apenas um carácter.%
,_
também podem ser utilizados como wildcards'abc' SIMILAR TO 'abc' --(true)
'abc' SIMILAR TO 'a' --(false)
'abc' SIMILAR TO '%(b|d)%' --(true)
'abc' SIMILAR TO '(b|c)%' --(false)
'Birne' SIMILAR TO 'B_rne' --(true)
'Birne' SIMILAR TO 'B_ne' --(false)
'Birne' SIMILAR TO 'B%ne' --(true)
'Birne' SIMILAR TO 'Bir%ne%' --(true)
'Birne' SIMILAR TO 'Birr%ne' --(false)
'Citroen' SIMILAR TO 'Cit[arju]oen' --(true)
'Citroen' SIMILAR TO 'Ci[tr]oen' --(false)
'Citroen' SIMILAR TO 'Ci[tr][tr]oen' --(true)
'Kiwi' SIMILAR TO 'Ki{2}wi' --(false) Está comparando a Kiiwi
'Kiwi' SIMILAR TO 'K[ipw]{2}i' --(true)
'Kiwi' SIMILAR TO 'K[ipw]{2}' --(false)
'Kiwi' SIMILAR TO 'K[ipw]{3}' --(true)
'Limone' SIMILAR TO 'Li{2,}mone' --(false)
'Limone' SIMILAR TO 'Li{1,}mone' --(true)
'Limone' SIMILAR TO 'Li[nezom]{2,}' --(true)
Voce pode encontrar as operações disponíveis em https://www.postgresql.org/docs/current/functions-string.html.
SQL-604. Projetar o novo e-mail dos colaboradores seguindo a sintaxe: sobrenome + 1º letra do nome + @utfpr.edu.br
SELECT concat(lower(LAST_NAME),
lower(substring(FIRST_NAME from 1 for 1)),
'@utfpr.edu.br' ) AS NEW_EMAIL
FROM EMPLOYEES;
SQL-605. Projetar a localização dos escritórios que possuem o número do local com os dígitos 8 ou 7
SELECT STREET_ADDRESS, CITY, STATE_PROVINCE
FROM LOCATIONS
WHERE STREET_ADDRESS SIMILAR TO '%(8|7)%';