0
내 postgresql 데이터베이스는 이와 같습니다.Laravel5에서 SUM 배열을 가져 오는 방법은 무엇입니까?
SELECT * FROM point_records;
id | user_id | point | created_at | updated_at
----+---------+-------+---------------------+---------------------
1 | 1 | 100 | 2017-01-27 09:39:47 | 2017-01-27 09:39:47
3 | 2 | 100 | |
4 | 2 | 100 | |
5 | 3 | 100 | |
6 | 3 | 100 | |
7 | 3 | 100 | |
SELECT user_id, SUM(point) AS points FROM point_records GROUP BY(user_id) ORDER BY points desc;
user_id | points
---------+--------
3 | 300
2 | 200
1 | 100
나는 포인트 배열을 얻고 싶다. 그래서 지금 나는 이것을한다.
$points = \App\PointRecord::selectRaw('member_id, SUM(point) AS points') -> groupBy('member_id') -> orderBy('points', 'desc') -> get() -> toArray();
$your_score = array_search($user -> id, $points) + 1;
이 $ 포인트 배열이이를 반환합니다.
Array ([0] => Array ([user_id] => 3 [points] => 150) [1] => Array ([user_id] => 2 [points] => 100) [2] => Array ([user_id] => 1 [points] => 10))
하지만 원시는 사용하고 싶지 않습니다. 나는 다른 아이디어를 찾고 있습니다.
누구든지 알고 계십니까?
흠 ... 합계 (점) 반환 정수를 시도하지만 GROUPBY는에 호출 할 수 없습니다. 하지만 난 몰라 addSelect 고마워. 감사합니다. – qwe001
. 와우, 복잡하게 들리네. 나는 원료를 사용한다. 왜 내가 원시, 사촌을 언젠가 postgres에서 MySQL로 DB를 변경하면 일하는 것을 멈출 것을 두려워하고, 원한다면 변경하고 싶다. 그리고 SQL 주입의 위험에 처한 원인. 내가 원하면 원시를 사용하고 싶지 않아. – qwe001