SQL Query查找最高评分

时间:2014-06-30 17:37:40

标签: mysql sql

SQL查询:

目的:

  

编写SQL查询以检索评级最高的Phills的地址   咖啡在美国寻址格式。

id   name         house   street          city          state  zip country rating
1   Best Buy        34    Main St        Carson           CA  98064 USA      9
2   Phills Coffee  4568   Sepulveda Blvd Torrance         CA  50833 USA      6
3   Starbucks        3    Ocean Blvd     Long Beach       WA  45093 USA      9
4   Phills Coffee   214   Carson St      Huntington Beach PA  89435 USA      4

美国地址格式(适用于美国以外的人):

http://bitboost.com/ref/international-address-formats/united_states/

我的尝试:

SELECT house, street, city,
       state,country,zip 
  FROM table 
 WHERE name="Phills Coffee" 
 ORDER BY rating DESC LIMIT 1

我做错了吗?或者我该如何改进此查询?

谢谢,

4 个答案:

答案 0 :(得分:1)

您被要求检索地址,并采用美国寻址格式。所以使用:

  

选择CONCAT(街道,'','国家',',')...

不知道美国的寻址格式是什么,但是使用concat来完成它。您的WHERE条件和ORDER BY都可以

答案 1 :(得分:1)

您必须使用Max(评级)作为最高评级和分组,

SELECT house, street, city,
       state,country,zip,Max(rating)
FROM   table
Group  By house, street, city,
       state,country,zip 
Having name="Phills Coffee"  
ORDER  BY rating DESC LIMIT 1;

我希望它对你有用,如果我没有任何帮助,我很抱歉..

答案 2 :(得分:1)

SELECT house, street, city, state, country, zip, rating
FROM table WHERE rating = (SELECT MAX(rating) 
    from table WHERE name = "Phills Coffee") 
AND name= "Phills Coffee";

这应该返回:

4568 Sepulveda Blvd Torrance CA 50833 USA 6

请注意,您可以从此查询的第一行省略评级,它只会返回地址(不是6,但仍会选择最高评级的信息)

答案 3 :(得分:1)

美国地址格式如下: 4568 Sepulveda Blvd,Torrance,CA 50833 USA。

所以你的选择看起来像: SELECT CONCAT(house,'',street,',',city,',',state,'',zip ,'',国家/地区) 从表 姓名=" Phills Coffee" ORDER BY评级DESC LIMIT 1