我想知道如何找到每个类别的最大值,如果我必须加入两个表。SQL查询查找类别为两个联合表的最大值
我有两个表。拥有名称,地址,美食,县(区)和摆脱(餐厅ID)的餐厅。
我也有检查,有一个摆脱,idate(检查日期)和totalscore(该餐厅的检查评分)。假设我必须展示餐厅的美食,餐厅的名称,地址和总计核心(从检查课程)。我必须在特定的县(在我的代码中为'Cobb')列出每家餐厅的最佳餐厅,并且检查日期必须在2015年。例如,中国菜将是“北京中心”,总数为99( 100)。
到目前为止,我有这样的代码:
select distinct cuisine, name,address,
max(totalscore) from restaurant r join inspection i on r.rid = i.rid
where county = 'Cobb' and year(idate) = 2015 group by cuisine, name,
adddress;
虽然这让我接近,我不断收到重复的副本。例如,它列出了两个不同的中餐馆,而不是选择最好的一个。
我想改善我的SQL编码风格,所以如果任何人有解决方案或最佳做法,将不胜感激!
----编辑--- 下面是我的数据库中的一些样本数据,当我参加检查和餐馆摆脱。
rid | idate | totalscore | name | county | street | cuisine |
+-----+------------+------------+-------------------+--------+---------------------+----------+
| 13 | 2015-01-04 | 90 | Heirloom | Cobb | 2243 Akers Mill Rd | American |
| 14 | 2015-01-27 | 49 | China Moon | Cobb | 2810 Paces Ferry Rd | Chinese |
| 14 | 2015-02-27 | 83 | China Moon | Cobb | 2810 Paces Ferry Rd | Chinese |
| 15 | 2015-03-27 | 77 | House of Chan | Cobb | 2469 Cobb Pkwy | Chinese |
| 16 | 2015-03-18 | 47 | I Love Sushi | Cobb | 2086 Cobb Pkwy | Japanese |
| 16 | 2015-04-18 | 87 | I Love Sushi | Cobb | 2086 Cobb Pkwy | Japanese |
| 17 | 2015-05-18 | 90 | Douceur de France | Cobb | 277 S Marietta Pkwy | French |
| 18 | 2015-05-22 | 59 | Swapna | Cobb | 2655 Cobb Pkwy | Indian |
| 18 | 2015-06-22 | 75 | Swapna | Cobb | 2655 Cobb Pkwy | Indian |
| 19 | 2015-06-18 | 32 | Mezza Luna | Cobb | 1669 Spring Rd | Italian |
| 19 | 2015-07-18 | 98 | Mezza Luna | Cobb | 1669 Spring Rd | Italian |
期望的结果会像
印度:Swapna:75 中国:中国月球:83 意大利语:Mezza月神:98 ......等等等等
如果您喜欢,请考虑遵循以下简单的两步操作步骤:1.如果您尚未这样做,请提供适当的DDL(和/或sqlfiddle),以便我们可以更轻松地复制问题。 2.如果您尚未这样做,请提供与步骤1中提供的信息相符的所需结果集。 – Strawberry
好的。我继续做下去。希望它能澄清事情, – Akshay
嗯,不,你没有。 – Strawberry