ОК, на данный момент у меня есть 3 таблицы базы данных:
- Пользователи
- id: 1, 2
- имя: Пользователь1, Пользователь2
- компании
- id: 1, 2, 3
- share_price: 10,00, 0,45, 5,98
- портфели
- user_id: 1, 1, 2
- company_id: 1, 2, 1
- сумма_общей доли: 200, 100, 30
Просто, чтобы вы знали, это для базовой симуляции фондового рынка. Мне нужно получить 5 лучших пользователей на основе их общих значений портфеля, которые рассчитываются следующим образом:
companies.share_price * portfolios.amount_of_shares
Учитывая, что 1 пользователь может иметь акции из нескольких компаний в своем портфеле, кажется бесполезным выделять все данные и затем просматривать их в PHP, потому что теоретически у меня может быть около 200 компаний ... Так что я Мне было интересно, можно ли написать SQL-запрос, который вычисляет стоимость акций каждой компании, а затем суммирует все эти значения, чтобы получить только одну переменную, поэтому я могу сделать ORDER BY и LIMIT 5 (получить исполнителей Top5)
РЕДАКТИРОВАТЬ: я использую CodeIgniter для этого проекта, если это имеет значение.