萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> sql 取最大與最小值語句

sql 取最大與最小值語句

sql 取最大與最小值語句

if object_id('tb') is not null drop table tb;
go
create table tb(
 col1 int,
 col2 int,
 fcount int)
insert into tb
select 11,20,1 union all
select 11,22,1 union all
select 11,23,2 union all
select 11,24,5 union all
select 12,39,1 union all
select 12,40,3 union all
select 12,38,4
go
--查詢
--1
select * from tb t where fcount=(select max(fcount)from tb where col1=t.col1)
--2
select * from tb t where not exists(select 1 from tb where col1=t.col1 and fcount>t.fcount)
--結果
/*
col1        col2        fcount
----------- ----------- -----------
12          38          4
11          24          5

*/


實例二

商品進貨報價表中保存有n種商品,每種商品分別對應m個供貨商的報價,我想得到這樣一個結果:從一個表中一眼能看出每種商品對應的最低商家報價和最高商家報價,怎麼做呢?

1)新建一個數據庫教程   test.mdb  
2)導入info.mdb   和   info1.mdb   的數據表,分別為   info   和   info1,表的數據如下:  
  

  info 
  ————– 
  商品名稱 
  1234 
  2345 
  
  info1 
  ————————— 
  商品名稱 廠商 價格 
  1234       廠商1 10 
  1234       廠商2 20 
  1234       廠商3 30 
  2345       廠商1 40 
  2345       廠商2 50 
  2345       廠商3 60 
  3456       廠商1 70 
  3456       廠商2 80 
  3456       廠商3 90 
  
  3)新建一個查詢,打開   sql視圖   (視圖->sql視圖) 
  
  4)粘貼如下內容並運行 
  
  select   info1.名稱,   max(info1.價格)   as   價格之最大值,   min(info1.價格)   as   價格之最小值 
  from   info1 
  group   by   info1.名稱 
  having   info1.名稱   in   (   select   info.名稱   from   info); 
  
  5)運行結果如下: 
  
  查詢1:選擇查詢 
  ———————————– 
  商品名稱  價格之最大值 價格之最小值 
  1234               30                    10 
  2345               60                    40   

 

copyright © 萬盛學電腦網 all rights reserved