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
我做错了吗?或者我该如何改进此查询?
谢谢,
答案 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