程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> MySQL查找價格最高的圖書經銷商的幾種SQL語句

MySQL查找價格最高的圖書經銷商的幾種SQL語句

編輯:關於MYSQL數據庫

不同的圖書,在不同的經銷商的價格不同,我們這裡要找到每種圖書最高的經銷商是誰? 找最低的類似了。

MySQL> use test;
Database changed
MySQL> CREATE TABLE shop (
    ->     article INT(4) UNSIGNED ZEROFILL DEFAULT '0000' NOT NULL,
    ->     dealer  CHAR(20)                 DEFAULT ''     NOT NULL,
    ->     price   DOUBLE(16,2)             DEFAULT '0.00' NOT NULL,
    ->     PRIMARY KEY(article, dealer));
Query OK, 0 rows affected (0.13 sec)

MySQL> INSERT INTO shop VALUES
    ->     (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),
    ->     (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);
Query OK, 7 rows affected (0.03 sec)
Records: 7  Duplicates: 0  Warnings: 0

MySQL> select * from shop;
+---------+--------+-------+
| article | dealer | price |
+---------+--------+-------+
|    0001 | A      |  3.45 |
|    0001 | B      |  3.99 |
|    0002 | A      | 10.99 |
|    0003 | B      |  1.45 |
|    0003 | C      |  1.69 |
|    0003 | D      |  1.25 |
|    0004 | D      | 19.95 |
+---------+--------+-------+
7 rows in set (0.06 sec)

MySQL> select article,max(price) from shop group by article
    -> ;
+---------+------------+
| article | max(price) |
+---------+------------+
|    0001 |       3.99 |
|    0002 |      10.99 |
|    0003 |       1.69 |
|    0004 |      19.95 |
+---------+------------+
4 rows in set (0.05 sec)

MySQL> select article,max(price),dealer from shop group by article;
+---------+------------+--------+
| article | max(price) | dealer |
+---------+------------+--------+
|    0001 |       3.99 | A      |
|    0002 |      10.99 | A      |
|    0003 |       1.69 | B      |
|    0004 |      19.95 | D      |
+---------+------------+--------+
4 rows in set (0.00 sec)

MySQL> select article,dealer,price from shop s1
    -> where price=(select max(s2.price) from shop s2
    -> where s1.article=s2.article);
+---------+--------+-------+
| article | dealer | price |
+---------+--------+-------+
|    0001 | B      |  3.99 |
|    0002 | A      | 10.99 |
|    0003 | C      |  1.69 |
|    0004 | D      | 19.95 |
+---------+--------+-------+
4 rows in set (0.01 sec)

MySQL> select s1.article,dealer,s1.price
    -> from shop s1
    -> join(
    -> select article,max(price) as price from shop
    -> group by article) as s2
    -> on s1.article = s2.article and s1.price = s2.price;
+---------+--------+-------+
| article | dealer | price |
+---------+--------+-------+
|    0001 | B      |  3.99 |
|    0002 | A      | 10.99 |
|    0003 | C      |  1.69 |
|    0004 | D      | 19.95 |
+---------+--------+-------+
4 rows in set (0.05 sec)

MySQL> select s1.article,s1.dealer,s1.price from shop s1
    -> left join shop s2 on s1.article=s2.article and s1.price select s1.article,s1.dealer,s1.price,s2.* from shop s1 left join shop s2
on s1.article=s2.article and s1.price

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved