欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL查詢結(jié)果處理方式

 更新時(shí)間:2024年04月10日 09:32:47   作者:Q小白養(yǎng)成記  
這篇文章主要介紹了MySQL查詢結(jié)果處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

SELECT 表頭名 FROM 庫(kù)名.表名 [WHERE條件] 分組 | 過(guò)濾 ;

分組 

select列名 count(*)from 表名 group by 列名 條件;

group By注意事項(xiàng):

  • 1.可以使用單個(gè)列,多個(gè)列組合,甚至是對(duì)列的計(jì)算結(jié)果
  • 2.分組的依據(jù)必須是可以從數(shù)據(jù)表中獲得的數(shù)據(jù)
  • 3.分組之后是針對(duì)子表數(shù)據(jù)進(jìn)行操作,不會(huì)在顯示單行數(shù)據(jù)等,或者說(shuō)不能完整的查看單個(gè)子表的數(shù)據(jù)
  • 4. select后面除了聚合函數(shù)處理的部分外,最好選取的列都出現(xiàn)在group by子句中
  • 5.NULL 空也會(huì)被歸類為一種值,所有NULL 的行被分到一張子表中
  • 6.group by出現(xiàn)在where 后,order by 前面

過(guò)濾

select 表頭名  from 庫(kù).表  where 篩選條件  having   篩選條件;

select列名 count(*)from 表名where 條件 group by 列名having 條件;

練習(xí)

1.orderltems表包含每個(gè)訂單的單獨(dú)項(xiàng)目,返回每個(gè)訂單號(hào)(order_num)的行數(shù)(作為order_lines),并按order_lines對(duì)結(jié)果排序

mysql> SELECT order_num, COUNT(*) AS order_lines  
    -> FROM orderitems  
    -> GROUP BY order_num  
    -> ORDER BY order_lines;
+-----------+-------------+
| order_num | order_lines |
+-----------+-------------+
|     20006 |           1 |
|     20007 |           1 |
|     20008 |           1 |
|     20005 |           4 |
|     20009 |           4 |
+-----------+-------------+
5 rows in set (0.01 sec)

2.返回一個(gè)名為cheapes_item的字段,其中包含每個(gè)供應(yīng)商的最低成本項(xiàng)目(使用Producrs表中的prod-price),并將結(jié)果從最低成本到最高成本排序。

mysql> SELECT vend_id, MIN(prod_price) AS cheapest_item
    -> FROM products
    -> GROUP BY vend_id
    -> ORDER BY cheapest_item ASC;
+---------+---------------+
| vend_id | cheapest_item |
+---------+---------------+
|    1003 |          2.50 |
|    1002 |          3.42 |
|    1001 |          5.99 |
|    1005 |         35.00 |
+---------+---------------+
4 rows in set (0.01 sec)

3.找到最好的客戶,為至少100項(xiàng)的每個(gè)訂單返回訂單號(hào)(orderlems表中的order num)。 

mysql> select order_num from orderitems
    -> group by order_num 
    -> having sum(quantity) >=100;
+-----------+
| order_num |
+-----------+
|     20007 |
+-----------+
1 row in set (0.00 sec)

4. 另一種確定最佳客戶的方法是根據(jù)他們花了多少錢。

編寫一條SQL語(yǔ)句,返回總價(jià)至少為1000的每個(gè)訂單的訂單號(hào)(0rderitems表中的order_num)。

這里有一個(gè)提示:對(duì)于這個(gè),你需要計(jì)算并求和total(item_price乘以guantiy)。

按訂單號(hào)對(duì)結(jié)果進(jìn)行排序。

mysql> select order_num from orderitems 
    -> group by order_num 
    -> having sum(item_price * quantity) >= 1000
    -> order by order_num;
+-----------+
| order_num |
+-----------+
|     20007 |
+-----------+
1 row in set (0.00 sec)

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論