1、查詢位於「華東」或「華南」地區的**商的id、公司名稱、地區、城市和**欄位的值
select **商id,公司名稱,地區,城市,**
from **商
where 地區 = 「華東」 or 地區 = 「華南」;
2、查詢「10248」和「10254」號訂單的訂單id、訂單上所訂購的產品的名稱及其銷售金額
join左連線與右連線
select 訂單id,產品名稱,(單價*數量*折扣)
as 銷售金額
from 訂單明細 as a inner
join 產品 as b on a.產品id=b.產品id
where a.訂單id =
10245
or a.訂單id=
10254
;
3、查詢單價大於20元的所有產品的產品名稱、單價以及**商的公司名稱、**
select 產品名稱.單價,公司名稱,**
from 產品 as a inner
join **商 as b on a.**商id = b.**商id
where 單價》
20;
4、按運貨商公司名稱,統計2023年由各個運貨商承運的訂單的總數量
select
count
(訂單id)
as 訂單數
from
(select a.運貨商id,a.訂單id,a.公司名稱
from 運貨商 as a inner
join 訂單 as b on a.運貨商id=b.運貨商id
where b.
year
('訂單日期')=
1997
)as c group
by c.公司名稱;
5、找出按箱包裝的產品名稱
select 產品名稱 from 產品 where 包裝單位 = 「箱」;
6、找出雇員鄭建傑所有的訂單並根據訂單銷售額排序
select 訂單id,
sum(單間*數量)
as 銷售額
from 訂單明細 as d inner
join
(select 訂單id,雇員id
from 訂單 as a inner
join 雇員 as b on a.雇員id = b.雇員id
where b.姓氏=
"鄭"and b.名字=「- 建傑」
)as c on c.訂單id=d.訂單id
order
by a.銷售額
select 訂單id,sum(單價*數量 ) as 銷售額 from 訂單明細 d from
( select 訂單id,雇員id from 訂單 as a inner join
雇員 as b on a.雇員id=b.雇員id where b.姓氏=」鄭」 and b.名字=」建傑」 ) c on d.訂單id = c. 訂單id order by 銷售額;
7、計算銷量前10位的訂單明細,結果集返回訂單id,訂單日期,公司名稱,發貨日期,銷售額,並排序
select 訂單id,訂單日期,公司名稱,發貨日期,
(單價*數量)
as 銷售額
from 訂單明細 as d inner
join
(select
*from 訂單,客戶
where 訂單.客戶id = 客戶.客戶id
)as c on d.訂單id = c.訂單id
order
by 銷售額 limit
10;
select 公司名稱,訂單日期,訂單id,發貨日期,(單價*數量)as 銷售額 from 訂單明細 as d inner join
(select * from 訂單,客戶 where 訂單.客戶id = 客戶.客戶id ) as c
on d.訂單id=c.訂單idorder by 銷售額 limit 10;
8、查出訂單總額超出5000的所有訂單,客戶名稱,客戶所在地區
select 訂單id,客戶名稱,地區
from 客戶 as b inner
join
(select 訂單id,產品id,訂單總額 from 訂單 b inner
join
(select 訂單id,產品id,
(單價*數量)
as 訂單總額
from 訂單明細
where 訂單總額》
5000
)a on a.訂單id = b.訂單id
)on 客戶.客戶id=訂單.客戶id;
9.查詢所有訂單中月份不是單數的訂單
select 訂單id from
where
month
("訂購日期")%
2=0;
10.找出在入職時已超過30歲的所有員工資訊
select
*from 雇員 where timestampdiff(
interval
=「year」,出生日期,僱傭日期)
>
30;
timestampdiff(單位,開始時間,結束時間) ==開始時間-結束時間,
eg。 timestampdiff(minute,begin_time,ifnull(over_time,now()))
注釋 :如果over_time不為空則用現在時間 減去 begin_time,得到的值的單位為分鐘
11.計算每一筆訂單的發貨期(從訂購到發貨),運貨期(從發貨到到貨)的時常,並按照發貨期從長到短的順序進行排序。
select timestampdiff(
interval
=」day」,訂購日期,發貨日期)
as 發貨期 ,
timestampdiff(
interval
=」day」,發貨日期,到貨日期) as 運貨期
order
by 發貨期;
12.建儲存過程 pd_getproducts找出所有單價大於30的產品(產品id、產品名稱、產品類別、產品**商、總銷售量、總銷售額 );入參:產品類別,**商;當產品類別和**商都為空的時候,nofilter
delimiter
//儲存過程
create
procedure pd_getproducts )
in 產品類別
in **商)
begin
select 產品id,產品名稱,產品類別,**商名稱,總銷售量,總銷售額
from
(select
*from 訂單明細 as a inner
join
(select 產品id,類別id,產品名稱,類別名稱
from 產品
where 產品.類別id=商品類別.類別id) b on a.產品id=b.產品id
) c inner
join **商 on a.**商id= **商.**商id;
end//delimiter
;
13、建檢視,查詢當日產品銷售情況v_todaysales,字段包括不限於:產品id、產品名稱、產品類別、客戶、運貨商、銷售量、銷售額
create
view v_todaysales as
select 產品id,產品名稱,產品類別,公司名稱as 客戶,運貨商,銷售量,銷售額
from 訂單 as d inner
join
(select
*from 商品類別 as a inner
join
(select 產品id ,訂單id,類別id,數量 as 銷售量,(單價*數量)as 銷售額,產品名稱
where 訂單明細.產品id=產品.產品id and
day(「訂購日期」)
=day
(now()
) b on a.類別id=b.類別id)
as c on d.訂單id=c.訂單id;
消除恐懼與焦慮最好的辦法就是充實自己的內心。當你有底氣,有足夠的自信去面對未來的不確定性時,你將不再會焦慮。願你求職的路上不再迷茫。 kafka高階知識點面試題
在老版本kafka中,訊息都是來一條傳送一條,這種方式會造成訊息傳送的吞吐量比較低,所以之後kafka對這種方式進行了優化,提供了批量傳送的方式,把多條訊息繫結成一批訊息傳送,以此來提高訊息傳送的吞吐率。這種方式就是緩衝池的思想,傳送訊息的邏輯大概如下 1 把訊息封裝成producerrecord物...
大資料面試題知識點分析(五)
a 一種可以加快批量寫入速度的方法是通過預先建立一些空的regions,這樣當資料寫入hbase時,會按照region分割槽情況,在集群內做資料的負載均衡。b hbase 裡面有這樣乙個hfileoutputformat類,他的實現可以將資料轉換成hfile格式,通過new乙個這個類,進行相關配置,...
大資料面試題知識點分析(六)
不支援,可以用left join 實現此功能。1.儲存於記憶體資料庫derby,此方法只能開啟乙個hive客戶端,不推薦使用。2.儲存於mysql資料庫,可以多客戶端連線,推薦使用。分為本地mysql資料庫,遠端mysql資料庫,但是本地的mysql資料用的比較多,因為本地讀寫速度都比較快。1.jo...