2015-10-20 4 views
-2

У меня есть таблица, где я хочу отображать cakename и cakeid с макс. price/slice. Каков самый простой способ сделать это?Sql Max() issue

enter image description here

+0

Что вы попробовали? –

+0

Оба столбца являются целыми целыми ценами/ломтиками? –

+0

Вы хотите выбрать максимум * цена * или максимум * ломтики * или максимум * цена за ломтик *? –

ответ

2

Если вы просто хотите, чтобы напечатать только один ввод, имеющий максимальный цена/ломтик использования предела пункта после того, спускаясь ниже

select 
    cakeid, 
    cakename, 
    -- slices, 
    -- status, 
    -- price, 
    price/slices as price_per_slice 
    from table1 
    order by (price/slices) desc limit 1; 

Если вы хотите, чтобы все элементы для отображения, имеющими максимальную цена/ломтик затем использовать подзапрос как указано ниже

select 
    cakeid, 
    cakename, 
    -- slices, 
    -- status, 
    -- price, 
    price/slices as price_per_slice 
    from table1 where (price/slices) = (select max(price/slices) from table1); 
-1

Попробуйте это:

SELECT cakename, 
     cakeid, 
     MAX(price) AS [MaxPrice] 
FROM CakeTable 
GROUP BY cakename,cakeid 

Надеется, что это помогает.

0

Думаю, вам это нужно.

SELECT cakename, 
     cakeid, 
     (price/slice) as col1 
FROM CakeTable order by col1 desc 

Делая это, вы получите cakeid, cakename и соотношение цена/ломтик в порядке убывания

-1

Используйте группу по статье:

SELECT CakeName, 
    CakeID, 
    MAX(Price) 
FROM CakeTable 
Group by Price,CakeID,CakeName 
+0

Почему цена в GROUP BY в сочетании с MAX (Price)? – jarlh

0
SELECT cakename, 
     cakeid, 
     price, 
     slice 
FROM  CakeTable 
ORDER BY price/slice DESC 

Think это будет работать, так что вы только дисплей какие вопросы. Вы можете изменить порядок , заменив DESC на ASC.

Надеюсь, что это сработает.