資料庫SQL實踐61:對於employees表中,給出奇數行的first_name
思路:
將小於等於e1.first_name的first_name的個數統計下,然後求餘2看是否等於1,若是則取出。
select e1.first_name from employees e1
where(select count(*) from employees e2 where e1.first_name>=e2.first_name)%2=1;
相關推薦
資料庫SQL實踐61:對於employees表中,給出奇數行的first_name
思路: 將小於等於e1.first_name的first_name的個數統計下,然後求餘2看是否等於1,若是則取出。 select e1.first_name from employees e1 where(select count(*) from employees e2 where e1
資料庫SQL實戰——對於employees表中,給出奇數行的first_name
題目的敘述有問題,正確敘述:對於employees表,在對first_name進行排名後,選出奇數排名對應的first_name。 題目描述 對於employees表中,給出奇數行的first_name CREATE TABLE `employees` ( `emp_no` int(11
資料庫SQL實踐32:將employees表的所有員工的last_name和first_name拼接起來作為Name
思路: SQLite字串的連線需要用||。 Mysql字串連線可以用concat或者concat_ws select last_name||" "||first_name as Name from employees; CONCAT(str1,str2,…) &
資料庫SQL實踐14:從titles表獲取按照title進行分組,注意對於重複的emp_no進行忽略
思想: 題目要求從titles表獲取按照title進行分組,每組個數大於等於2,給出title以及對應的數目t。注意對於重複的emp_no進行忽略。首先通過條件group by title實現按照title進行分組,其次通過條件count(distinct emp_no)實現對重複的emp_no
資料庫SQL實踐13:從titles表獲取按照title進行分組
思想: 題目要求從titles表獲取按照title進行分組,每組個數大於等於2,給出title以及對應的數目t。首先通過條件group by title實現按照title分組,其次通過條件having t>=2實現每組個數大於等於2(其中t是count(*)即每組的個數)。 selec
資料庫SQL實戰15:查詢employees表
思想: 題目要求查詢employees表所有emp_no為奇數,且last_name不為Mary的員工資訊,並按照hire_date逆序排列。首先通過條件(emp_no%2)=1找出所有奇數的emp_no,其次通過條件last_name!='Mary'找出last_name不為Mary的員工,最
資料庫SQL實踐38:針對actor表建立檢視actor_name_view
思路: 1.直接在檢視名的後面用小括號建立檢視中的欄位名 create view actor_name_view (first_name_v, last_name_v) as select first_name, last_name from actor; 2.注意 create&nbs
資料庫SQL實踐28:查詢描述資訊中包括robot的電影對應的分類名稱以及電影數目,而且還需要該分類對應電影數量>=5部
思想: 題目要求查詢描述資訊中包括robot的電影對應的分類名稱以及電影數目,而且還需要該分類對應電影數量>=5部。 首先通過條件(select category_id from film_category group by film_category.category_id havi
資料庫SQL實踐31:獲取select * from employees對應的執行計劃
思想: explain 命令可以檢視SQL執行計劃的資訊,可以作為日常優化SQL的工具。 explain select * from employees; 原文:https://blog.csdn.net/youzi_yun/article/details/80562116
資料庫SQL實踐39:針對上面的salaries表emp_no欄位建立索引idx_emp_no
思路: SQLite中,使用 indexed by 語句進行強制索引查詢 select * from salaries indexed by idx_emp_no where emp_no=10005; MySQL中,使用 force index(indexname)語句進行強
資料庫SQL實踐36:建立一個actor_name表
思路: 1.先按題目要求建立一個表actor_name; 2.然後從actor中選出first_name和last_name插入actor_name中。(注意點:這時沒有values。我也不太懂為什麼) create table actor_name ( first_name varch
資料庫SQL實踐49:針對庫中的所有表生成select count(*)對應的SQL語句
思路: 列出資料庫中所有表名: select name from sqlite_master where type='table' 用||連線 "select count(*) from" || name || ";"從而實現連線 select "select count(*)
資料庫SQL實踐47:如何獲取emp_v和employees相同的資料
思路: 先找出emp_v中的emp_no,然後作為集合,判斷employees中的emp_no是否在這個集合中,若在則取出記錄。 select * from employees where emp_no in (select emp_no from emp_v); 由於檢視 emp_v
資料庫SQL實踐11:獲取所有員工當前的manager
思想: 題目要求獲取所有員工當前的manager,如果當前的manager是自己的話結果不顯示,當前表示to_date='9999-01-01'。 結果第一列給出當前員工的emp_no,第二列給出其manager對應的manager_no。首先通過條件e.dept_no = m.dept_no找
資料庫SQL實踐10:獲取所有非manager的員工emp_no
思想: 題目要求獲取所有非manager的員工emp_no。首先通過子查詢找到部門經理的emp_no,然後通過條件where emp_no not in找出非manager的emp_no。 select emp_no from employees where emp_no not in (s
資料庫SQL實踐9:獲取所有部門當前manager的當前薪水情況
思想: 題目要求獲取所有部門當前manager的當前薪水情況,給出dept_no, emp_no以及salary,當前表示to_date='9999-01-01'。首先通過條件d.to_date = '9999-01-01'來找出部門當前manager,然後通過條件s.to_date = '99
資料庫SQL實踐8:找出所有員工當前薪水salary情況
思想: 題目要求找出所有員工當前薪水salary情況,對於相同的薪水只顯示一次,並按照逆序顯示。首先根據當前薪水的要求通過條件to_date = '9999-01-01'來達到目的,然後根據相同的薪水只顯示一次的要求通過條件distinct salary來達到目的,最後通過order by sa
資料庫SQL實踐7:查詢薪水漲幅超過15次的員工號emp_no以及其對應的漲幅次數t
思想: 題目要求查詢薪水漲幅超過15次的員工號emp_no以及其對應的漲幅次數t。首先通過group by函式對emp_no進行分組,將同一個emp_no的記錄分為一組並通過count(*)計算這個emp_no組中一共有幾條記錄,最後通過having函式找出記錄數大於15的。 知識點:
資料庫SQL實踐6:查詢所有員工入職時候的薪水情況
思想: 題目查詢所有員工入職時候的薪水情況,給出emp_no以及salary, 並按照emp_no進行逆序。首先根據所有員工入職時候的薪水要求通過條件e.hire_date = s.from_date來找到剛入職時候的薪水,然後根據按照emp_no進行逆序要求通過order by e.emp_n
資料庫SQL實踐2:查詢入職員工時間排名倒數第三的員工所有資訊
思想: 題目要求查詢入職員工時間排名倒數第三的員工所有資訊。首先通過一個子查詢(select distinct hire_date from employees order by hire_date desc limit 2,1)查找出入職員工時間排名倒數第三的入職時間hire_dat