SELECT
name
FROM
students s
JOIN packages p1
USING(ID)
JOIN friends f
USING(ID)
JOIN packages p2
ON f.friend_id = p2.id
WHERE
p2.salary > p1.salary
ORDER BY
p2.salary
;
WITH best_friend_salary as ( SELECT Students.id, name, salary as Person_Salary, Friend_id, (SELECT name FROM Students where id = friend_id) as Friend, (SELECT salary FROM Packages where id = friend_id) as Friend_Salary FROM Students JOIN Friends ON Students.id = friends.id JOIN Packages ON Students.id = Packages.id )
SELECT name FROM best_friend_salary WHERE Person_Salary < Friend_Salary ORDER BY Friend_Salary;
SELECT
result.name
FROM
(
SELECT
s.ID
, s.name
, p.salary AS my_salary
, f.friend_id
FROM
Students s
JOIN Packages p
ON s.ID = p.ID
JOIN Friends f
ON p.ID = f.ID
) result
JOIN Packages p
ON result.friend_id = p.id
WHERE
p.salary > result.my_salary
ORDER BY
p.salary
;
def solution(survey, choices):
answer = ''
result = {'R':0, 'T':0, 'C':0, 'F':0, 'J':0, 'M':0, 'A':0, 'N':0}
for i in range(len(choices)):
if choices[i] > 4:
result[survey[i][1]] += choices[i]-4
elif choices[i] < 4:
result[survey[i][0]] += 4-choices[i]
result_keys = list(result.keys())
result_values = list(result.values())
for i in range(0, 7, 2):
if result_values[i] >= result_values[i+1]:
answer += result_keys[i]
else:
answer += result_keys[i+1]
return answer
def solution(설문_조사_배열, 선택지_배열):
지표 = {}
지표['RT'] = 지표['TR'] = {'R': 0, 'T': 0,}
지표['FC'] = 지표['CF'] = {'C': 0, 'F': 0,}
지표['MJ'] = 지표['JM'] = {'J': 0, 'M': 0,}
지표['AN'] = 지표['NA'] = {'A': 0, 'N': 0,}
점수 = {
'매우 비동의': 3,
'비동의': 2,
'약간 비동의': 1,
'모르겠음': 0,
'약간 동의': 1,
'동의': 2,
'매우 동의': 3,
}
비동의 = [1, 2, 3]
동의 = [5, 6, 7]
선택지 = {
1: '매우 비동의',
2: '비동의',
3: '약간 비동의',
4: '모르겠음',
5: '약간 동의',
6: '동의',
7: '매우 동의',
}
answer = ''
for 인덱스 in range(len(설문_조사_배열)):
비동의_캐릭터, 동의_캐릭터 = 설문_조사_배열[인덱스]
if 선택지_배열[인덱스] in 비동의:
지표[설문_조사_배열[인덱스]][비동의_캐릭터] += 점수[선택지[선택지_배열[인덱스]]]
continue
if 선택지_배열[인덱스] in 동의:
지표[설문_조사_배열[인덱스]][동의_캐릭터] += 점수[선택지[선택지_배열[인덱스]]]
결과_배열 = [지표['RT'].items(), 지표['FC'].items(), 지표['MJ'].items(), 지표['AN'].items()]
정렬된_배열 = []
for 결과 in 결과_배열:
정렬된_배열.append(sorted(결과, key=lambda x: -x[1]))
return ''.join([캐릭터_점수_튜플[0] for [캐릭터_점수_튜플, _] in 정렬된_배열])
def solution(survey, choices):
my_dict = {"RT":0,"CF":0,"JM":0,"AN":0}
for A,B in zip(survey,choices):
if A not in my_dict.keys():
A = A[::-1]
my_dict[A] -= B-4
else:
my_dict[A] += B-4
result = ""
for name in my_dict.keys():
if my_dict[name] > 0:
result += name[1]
elif my_dict[name] < 0:
result += name[0]
else:
result += sorted(name)[0]
return result
def solution(survey, choices):
answer = ''
RTCFJMAN = [0,0,0,0,0,0,0,0]
str = "RTCFJMAN"
for i in range(len(survey)):
RTCFJMAN[str.index(survey[i][1])] += choices[i]-4
if(RTCFJMAN[0]>=RTCFJMAN[1]): answer+= "R"
else: answer+="T"
if(RTCFJMAN[2]>=RTCFJMAN[3]): answer+= "C"
else: answer+="F"
if(RTCFJMAN[4]>=RTCFJMAN[5]): answer+= "J"
else: answer+="M"
if(RTCFJMAN[6]>=RTCFJMAN[7]): answer+= "A"
else: answer+="N"
return answer
def solution(survey, choices):
scores = {"A":0, "N":0, "C":0, "F":0, "M":0, "J":0, "R":0, "T":0}
for idx, choice in enumerate(choices):
if choice - 4 > 0:
scores[survey[idx][1]] += choice - 4
elif choice - 4 < 0:
scores[survey[idx][0]] += 4 - choice
type = ""
if scores["R"] >= scores["T"]:
type += "R"
else:
type += "T"
if scores["C"] >= scores["F"]:
type += "C"
else:
type += "F"
if scores["J"] >= scores["M"]:
type += "J"
else:
type += "M"
if scores["A"] >= scores["N"]:
type += "A"
else:
type += "N"
return type
# 행정동 geojson 파일을 읽고, 좌표 정보 읽어오기
with open([행정동 geojson 파일명], encoding='utf-8') as json_file:
jdata = json_file.read()
geoJSON = json.loads(jdata)
pts=[]
for feature in geoJSON['features']:
if feature['geometry']['type']=='Polygon':
pts.extend(feature['geometry']['coordinates'][0])
pts.append([None, None])
elif feature['geometry']['type']=='MultiPolygon':
for polyg in feature['geometry']['coordinates']:
pts.extend(polyg[0])
pts.append([None, None])
else: raise ValueError("geometry type irrelevant for map")
# 자치구 geojson 파일을 읽고, 좌표 정보 읽어오기
with open([자치구 geojson 파일명], encoding='utf-8') as json_file:
jdata = json_file.read()
geoJSON = json.loads(jdata)
pts_gu = []
for feature in geoJSON['features']:
if feature['geometry']['type']=='Polygon':
pts_gu.extend(feature['geometry']['coordinates'][0])
pts_gu.append([None, None])
elif feature['geometry']['type']=='MultiPolygon':
for polyg in feature['geometry']['coordinates']:
pts_gu.extend(polyg[0])
pts_gu.append([None, None])
else: raise ValueError("geometry type irrelevant for map")
# 행정동 좌표정보를 경도(x), 위도(y) 배열로 각각 저장
x = [i for i,j in pts]
y = [j for i,j in pts]
# 자치구 좌표정보를 경도(x_gu), 위도(y_gu) 배열로 각각 저장
x_gu = [i for i,j in pts_gu]
y_gu = [j for i,j in pts_gu]
fig = plt.figure(figsize=(9, 8), facecolor="white")
ax = fig.gca()
ax.plot(x,y, color = 'black') #행정동
ax.plot(x_gu,y_gu, color = 'red') #자치구
plt.show()
참고 ★
참고
대한민국 행정구역 공간정보 파일
UTM-K (GRS80)
도로명주소 데이터 좌표계 확인 및 변환
Spatial Join
Geopandas로 polygon 안에 있는 point 개수 세기
격자기반 공간정보 컨텐츠 플랫폼
국토정보플랫폼 국토정보맵
pandas 특정 문자 행 삭제하기