2016-02-22 1 views
0

У меня есть таблица со студией, названием и по всему миру в моей таблице MYSQL. Я хочу выбрать все самые лучшие деньги, снимающие фильмы в каждой студии. Как я могу это достичь? Пожалуйста, помогите мне. Спасибовыберите все самые высокие деньги, снимающие фильмы из каждой студии IN mysql ТАБЛИЦА

Редактировать

У меня есть следующий код сейчас, но он не работает должным образом

SELECT studio, max(CAST(worldwide AS INT)* 1000000), title FROM top_movies GROUP BY studio; 
+0

почему разве работает должным образом? и почему вы умножаете на 1 миллион? \t Пожалуйста, прочитайте [** How-to-Ask **] (http://stackoverflow.com/help/how-to-ask) \t \t И вот отличное место для [** START **] (http://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/) –

+0

Что такое тип данных по всему миру? почему вы бросаете по всему миру в int и умножаете на 1000000? –

+0

Всемирно - текст. Он был умножен, потому что все значения были записаны как 886,92 вместо 886920000 –

ответ

1
SELECT studio_name, movie_name, total_money 
FROM top_movies 
JOIN 
    (
     SELECT studio, max(total_money) tmoney 
     FROM top_movies 
     GROUP BY studio 
    ) b 
    ON top_movies.studio = b.studio 
    AND top_movies.total_money = b.tmoney 
+0

Он возвращает те же результаты, что и первая попытка. Причина, по которой я знаю это, заключается в том, что самая мировая ценность - это Аватар от Fox, который находится на моем столе, но вместо этого он показывает другой фильм. То же самое для Titanic и Parmount –

+0

Это правильный процесс. Проблема в том, что вы не объясняете, где находятся деньги. Сначала вы говорите, что есть столбец «total_money», но затем используйте столбец «worldide». Так что это? Процесс прост, вы сначала обнаружили, что это самое большое значение, а затем присоединитесь к таблице, чтобы получить все столбцы из этой строки. –

+0

'total_money' было неправильное имя. Это называется «во всем мире» –

-1

Вы бросили значение как integer, но в качестве комментария к worldwide значение - это плавающее значение (886,92), поэтому cast as decimal. Try This

SELECT studio, MAX(CAST(worldwide AS DECIMAL(20,2))* 1000000), title 
FROM top_movies 
GROUP BY studio; 

ИЛИ

SELECT studio, MAX(CAST(worldwide AS DECIMAL(20,2)))* 1000000, title 
FROM top_movies 
GROUP BY studio; 

надеюсь, что это даст правильный результат

Смежные вопросы