[RUBY-ON-RAILS] MySQL은 액티브를 사용하여 DISTINCT ON을 사용하는 방법
RUBY-ON-RAILSMySQL은 액티브를 사용하여 DISTINCT ON을 사용하는 방법
모든 고유 한 사용자 모두의 최신 방문합니다.
이를 위해 나는 쿼리 아래 사용하고 있습니다
Event.order(time: :desc).select('DISTINCT ON(user_id) user_id, time')
SQL 구문 오류가.
ActiveRecord::StatementInvalid (Mysql2::Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ON(user_id) user_id, time FROM `events` ORDER BY `events`.`time` DESC ' at line 1: SELECT DISTINCT ON(user_id) user_id, time FROM `events` ORDER BY `events`.`time` DESC LIMIT 11)
이벤트 테이블 열 이름
["id", "visit_id", "user_id", "name", "properties", "time"]
이에 캔 누구의 도움 나를
이 같은 예상 출력 뭔가
{ 21 => "2018-12-18 09:44:59", 42 => "2018-12-19 12:08:59"}
21 USER_ID이며 값은 마지막 방문 시간
데이터베이스로 MySQL을 사용
해결법
-
==============================
1.당신은 마지막 방문 시간에 모든 사용자가 방문을 원하는 그래서.
당신은 마지막 방문 시간에 모든 사용자가 방문을 원하는 그래서.
대신 사용 DISTINCT 기능, 당신은 MAX 기능 그룹을 사용할 수 있습니다.
쿼리 모습처럼
Events.group(:user_id).maximum(:time)
이 출력 원하는 결과
{21=>Tue, 18 Dec 2018 11:15:24 UTC +00:00, 23=>Thu, 20 Dec 2018 06:42:10 UTC +00:00}
당신을 위해이 작품을 바랍니다.
참고 DISTINCT ON (열). PostgreSQL의 구문입니다.
-
==============================
2.나 코멘트 DISTINCT ON (열)에서 말했듯이, * PostgreSQL의 SQL 구문이다.
나 코멘트 DISTINCT ON (열)에서 말했듯이, * PostgreSQL의 SQL 구문이다.
당신이 아래의 쿼리는 MySQL의에서 다시 작성해야 할 필요가
SELECT DISTINCT ON(user_id) AS user_id, time FROM <table> ORDER BY time DESC LIMIT 11
그렇게 할 수있는 가장 쉬운 SUBSTRING_INDEX를 사용 (GROUP_CONCAT (..)). 는 당신에게 정확한 결과를 제공한다 아래 쿼리합니다.
SET SESSION group_concat_max_len = @@max_allowed_packet; SELECT user_id , SUBSTRING_INDEX( GROUP_CONCAT(time ORDER BY time DESC ) , ',' , 1 ) AS time FROM <table> GROUP BY user_id ORDER BY time DESC LIMIT 11
from https://stackoverflow.com/questions/53868870/how-to-use-distinct-on-with-mysql-using-activerecord by cc-by-sa and MIT license
'RUBY-ON-RAILS' 카테고리의 다른 글
[RUBY-ON-RAILS] 하나의 마이그레이션 파일을 실행 (0) | 2020.02.21 |
---|---|
[RUBY-ON-RAILS] 레일 국제화 검증 중단 경고 (0) | 2020.02.21 |
[RUBY-ON-RAILS] 모델, 뷰, 컨트롤러 및 도우미 레일 : 무슨 일이 어디에 간다? (0) | 2020.02.21 |
[RUBY-ON-RAILS] 레일 코드에 인코딩 루비? (0) | 2020.02.21 |
[RUBY-ON-RAILS] 기본 키 및 개체 ID를 레일 (0) | 2020.02.21 |