Технически, вы можете упорядочивать строки в таблице в большинстве баз данных. Это делается путем создания кластерного индекса по ключам, используемым для упорядочения.
Угадай, что?
select t.*
from t
все равно не возвращает строки по порядку, даже в таблицах с кластеризованным индексом. * По крайней мере, нет гарантии. * Наборы результатов SQL неупорядочены, если только ORDER BY
явно не включено для самого внешнего SELECT
. Единственная гарантия при заказе набора результатов - использовать order by
. В вашем случае это будет:
select item_id, sum(stock) as total_stock
from stock_tbl
group by item_id
order by item_id;
или
select ts.*
from total_stock ts
order by item_id;
Кстати, использование временной таблицы для этого не рекомендуется, если у вас нет особой необходимости материализовать набор результатов.