我正尝试解决 Hackerrank 问题Weather Observation Station 3,该问题陈述如下:
我想出了以下解决方案:
SELECT CITY
FROM STATION
WHERE MOD(ID, 2) = 0
但是当我尝试运行它时,编译器会提示“错误答案”。我不知道这个查询有什么问题?
我正尝试解决 Hackerrank 问题Weather Observation Station 3,该问题陈述如下:
我想出了以下解决方案:
SELECT CITY
FROM STATION
WHERE MOD(ID, 2) = 0
但是当我尝试运行它时,编译器会提示“错误答案”。我不知道这个查询有什么问题?
SELECT DISTINCT CITY
FROM STATION
WHERE MOD(ID, 2) = 0
你可以尝试这个查询:
SELECT DISTINCT CITY FROM STATION WHERE (ID % 2) = 0
SELECT DISTINCT CITY
FROM STATION
WHERE MOD(ID, 2) = 0;
SELECT DISTINCT CITY
FROM STATION
WHERE MOD(ID, 2) = 0;
SELECT DISTINCT CITY
FROM STATION
WHERE MOD(ID, 2) = 0;
--或--
SELECT DISTINCT CITY
FROM STATION
WHERE ID%2=0;
SELECT DISTINCT CITY
FROM STATION
WHERE ID%2=0;
SELECT DISTINCT CITY FROM STATION WHERE (ID % 2) = 0;
DISTINCT
用于不允许重复项,(Id % 2)
告诉SQL将Id
除以2
并返回余数。=0
,因为2%2=0
,4%2=0
等等。Id
,则应使用=1
,因为将奇数除以2
时总会有余数1
。MOD()
函数,正如被接受的答案所建议的那样吗? - Jeremy CaneySELECT DISTINCT CITY FROM STATION WHERE (ID % 2)=0;
SELECT DISTINCT CITY FROM STATION WHERE MOD(ID, 2)=0;
我建议另一种解决方案:
SELECT DISTINCT CITY
FROM STATION
WHERE ID LIKE '%0' OR ID LIKE '%2' OR ID LIKE '%4' OR ID LIKE '%6' OR ID LIKE '%8';
在MSSQL中:
SELECT CITY
FROM STATION
WHERE (ID % 2) = 0
GROUP BY CITY
select CITY from station where ID % 2 = 0;
但是由于进一步的标准,比如“但必须从你的答案中排除重复项。”你的答案应该是
select DISTINCT CITY from station where ID % 2 = 0;
MOD()
函数,就像被接受的答案中所建议的那样吗? - Jeremy Caney使用带有case-when语句的子查询的SQL Server:
SELECT DISTINCT CITY FROM STATION WHERE ID IN (SELECT
CASE
WHEN ABS(ID%2) = 0 THEN ID
END
FROM STATION);