본문 바로가기
MySql

MySQL - Getting age and numbers of days between two dates

by 베이스 공부 2020. 12. 13.
반응형

일부 데이터를 얻기 위해 거대한 데이터베이스 (약 2 천만 개의 레코드)를 쿼리하려고합니다. 이것은 내가 지금 작업하고있는 쿼리입니다.

SELECT a.user_id, b.last_name, b.first_name, c.birth_date FROM users a
INNER JOIN users_signup b ON a.user_id a = b.user_id
INNER JOIN users_personal c ON a.user_id a = c.user_id
INNER JOIN
(
SELECT distinct d.a.user_id FROM users_signup d
WHERE d.join_date >= '2013-01-01' and d.join_date < '2014-01-01'
) 
AS t ON a.user_id = t.user_id

데이터베이스에서 추가 데이터를 검색하는 데 몇 가지 문제가 있습니다. 결과 테이블에 2 개의 추가 필드를 추가하고 싶습니다.

 

해결 방법

 

이 시도:

SELECT a.user_id, b.last_name, b.first_name, c.birth_date, 
       FLOOR(DATEDIFF(CURRENT_DATE(), c.birth_date) / 365) age, 
       DATEDIFF(b.left_date, b.join_date) workDays
FROM users a
INNER JOIN users_signup b ON a.user_id a = b.user_id
INNER JOIN users_personal c ON a.user_id a = c.user_id
WHERE b.join_date >= '2013-01-01' AND b.join_date < '2014-01-01'
GROUP BY a.user_id

 

참조 페이지 https://stackoverflow.com/questions/21084969

 

 

반응형

댓글