Reputation:
I want to fetch 3 symbol_id
which has higher buy_rate
value
finaltrades
table structure:
id user_id exchange_id market_id symbol_id buy_datetime sell_datetime buy_rate sell_rate quantities
---- --------- ------------- ----------- ----------- --------------------- --------------------- ---------- ----------- ------------
1 1 1 1 96 2018-05-25 18:13:26 0000-00-00 00:00:00 2205 0 100
2 1 1 1 96 0000-00-00 00:00:00 2018-05-25 18:13:59 500 6680 100
3 4 1 1 23 2018-05-25 18:16:27 0000-00-00 00:00:00 120 0 10
4 1 1 1 96 2018-05-25 18:13:59 0000-00-00 00:00:00 50351 0 30
5 1 1 1 15 0000-00-00 00:00:00 2018-05-25 18:34:46 750 100 150
6 4 1 1 573 2018-05-26 09:29:17 2018-05-27 03:10:09 107 10 10
7 1 1 1 15 2018-05-11 09:30:54 2018-05-25 18:34:56 40 100 40
here is what I came up with so far:
public function HigherValue(){
$higher_value = DB::table('finaltrade')
->select 'buy_rate'> (select 'buy_rate')
->get();
return response()->json($higher_value);
}
Upvotes: 1
Views: 54
Reputation: 64476
You could use DISTINCT
to get distinct symbol_ids sorted by buy_rate
SELECT DISTINCT symbol_id
FROM finaltrade
ORDER BY buy_rate DESC
LIMIT 3;
DB::table('finaltrade')
->orderBy('buy_rate', 'desc')
->distinct()
->limit(3)
->get();
Upvotes: 0
Reputation: 521419
If you want the three distinct symbol_id
having the highest buy rate then you may try the following:
public function HigherValue() {
$higher_value = DB::table('finaltrade')
->select('symbol_id')
->groupBy('symbol_id')
->orderByRaw('MAX(buy_rate) DESC')
->limit(3)
->get();
return response()->json($higher_value);
}
This would correpsond to the following raw MySQL query:
SELECT symbol_id
FROM finaltrade
GROUP BY symbol_id
ORDER BY MAX(buy_rate) DESC
LIMIT 3;
Upvotes: 2
Reputation: 941
try this
public function HigherValue()
{
$higher_value = DB::table('finaltrade')
->select('symbol_id')
->orderBy('buy_rate', 'DESC')
->limit(3)
->get();
return response()->json($higher_value);
}
Upvotes: 1
Reputation: 8618
public function HigherValue()
{
$higher_value = DB::table('finaltrade')
->select('symbol_id')
->orderByDesc('buy_rate')
->limit(3)
->get();
return response()->json($higher_value);
}
Try this
Upvotes: 1