В общем, может ли быть не более одного предмета с максимальным количеством (инвентаризационным счетом)?
Чтобы получить максимальный запас для категрии, используйте подзапрос (синтаксис зависит от вашей базы данных):
SELECT LEFT(sku,1) as category, MAX(inventory_count) as c
FROM Table1
GROUP BY LEFT(sku,1)
SORT BY LEFT(sku,1)
Это даст вам таблицу max_inventory по категориям, таким образом:
b,18
c,7
t,8
Итак, теперь вы знаете максимум по категории. Чтобы получить соответствующие продукты, используйте этот результат как
подзапрос и найти все продукты в данной категории, которые соответствуют максимальному (инвентаризации):
SELECT t1.*
FROM Table1 AS t1,
(SELECT LEFT(sku,1) AS category, MAX(inventory_count) AS c
FROM Table1
GROUP BY LEFT(sku,1)
) AS t2
WHERE LEFT(t1.sku,1) = t2.category AND t2.c = t1.inventory_count
Извините, приведенный выше код может / не может работать в вашей базе данных, но надеюсь, что вы поняли идею.
Bill
PS - возможно, это не полезно, но дизайн стола здесь не особо помогает. Если у вас есть контроль над схемой, поможет разделить это на несколько таблиц.