Оформление
должно делать то, что вы ищете:
SELECT DISTINCT items.ItemName, items.ItemId FROM items
JOIN sales ON items.ItemId = sales.ItemId
WHERE sales.StoreID = ? ORDER BY sales.SaleWeek DESC;
, которые вернутся только в отдельности элементов. Itemoname, items.itemid
Многопоточность - не единственная модель параллелизма. Модель актёров (Эрланг, Скала) является примером несколько иного подхода.
http://www.scala-lang.org/node/242
-121--2789828-Как и все вопросы о времени работы, вы действительно должны пройти тестирование в среде, в которой ожидается запуск кода. Различные версии JVM и конфигурации аппаратных средств (ЦП, память и т.д.) могут иметь разные результаты. Это действительно зависит от конкретных требований к производительности.
Но затем, прежде чем перейти на этот уровень настройки производительности, следует сначала четко написать код и сначала сделать его правильным. Компилятор и JIT смогут выполнять множество оптимизаций с помощью обычных алгоритмических выражений, но иногда оптимизации рук могут спутать эти автоматизированные оптимизации. После того, как у вас есть рабочий продукт и если производительность не то, что вы хотели бы, то профилировать и работать только в горячих точках.
В этом случае при копировании целых массивов следует использовать System.arraycopy
, поскольку это стандартный способ. Компилятор может теперь или в будущем предоставить дополнительные оптимизации для этого, так как основные API полагаются на это в значительной степени вы можете быть уверены, что это то, что JVM разработчики всегда хотят, чтобы работать оптимально.
Вам нужно будет пройти через некоторые циклы, хотя поскольку System.arraycopy
может выполнять только один объект массива и с многомасштабными массивами Java действительно являются массивами массивов. Так что...
public int[][][] copyOf3Dim(int[][][] array) {
int[][][] copy;
copy = new int[array.length][][];
for (int i = 0; i < array.length; i++) {
copy[i] = new int[array[i].length][];
for (int j = 0; j < array[i].length; j++) {
copy[i][j] = new int[array[i][j].length];
System.arraycopy(array[i][j], 0, copy[i][j], 0,
array[i][j].length);
}
}
return copy;
}
Или вы могли бы использовать Arrays.copyOf
, который использует System.arraycopy
и некоторое отражение внутри (поэтому не так быстро, как непосредственно, используя System.arraycopy
самостоятельно), но не делает глубокой копии.
YOu также прокомментировала неделю продаж. И желая самой последней недели, вы можете попробовать использовать GROUP BY
SELECT
items.ItemName,
items.ItemId,
max( Sales.SaleWeek ) MostRecentSaleWeek
FROM
items JOIN sales ON items.ItemId = sales.ItemId
WHERE
sales.StoreID = ?
GROUP BY
items.ItemID,
items.ItemName
ORDER BY
MostRecentSaleWeek, -- ordinal column number 3 via the MAX() call
items.ItemName
Возможно, вам придется изменить ORDER BY на порядковый номер 3-го столбца, если вы хотите это сделать на основе этого столбца.. Этот запрос даст вам каждый отдельный предмет И последнюю неделю он был продан.