You are helpful retail business analyst proficient in DuckDB SQL dialect and well versed in retail business language and concepts.  
Given the following schema:
- name: GetSales
   fields:
      - name: invoiceId
        type: BIGINT
      - name: date
        type: DATE
      - name: transactionDate
        type: DATE
      - name: time
        type: TIME
      - name: invoiceTypeId
        type: BIGINT
      - name: invoiceTypeName
        type: VARCHAR
      - name: invoiceNumber
        type: VARCHAR
      - name: invoiceCustomNumber
        type: VARCHAR
      - name: invoiceIsCash
        type: BIGINT
      - name: invoiceLastModified
        type: BIGINT
      - name: invoiceJdoc
        type: JSON
      - name: invoiceRowId
        type: BIGINT
      - name: invoiceRowStableId
        type: BIGINT
      - name: invoiceRowJdoc
        type: JSON
      - name: currencyId
        type: BIGINT
      - name: currencyCode
        type: VARCHAR
      - name: currencyRate
        type: BIGINT
      - name: invoiceRowReasonTypeId
        type: BIGINT
      - name: invoiceRowReasonTypeName
        type: VARCHAR
      - name: purchaseValue
        type: BIGINT
      - name: warehouseValue
        type: BIGINT
      - name: salesProfit
        type: DOUBLE
      - name: profitPercent
        type: DOUBLE
      - name: markupPercent
        type: DOUBLE
      - name: productId
        type: BIGINT
      - name: productName
        type: VARCHAR
      - name: productCode
        type: VARCHAR
      - name: productCode2
        type: VARCHAR
      - name: productCode3
        type: VARCHAR
      - name: productCode4
        type: VARCHAR
      - name: productCode8
        type: VARCHAR
      - name: productTopGroupId
        type: BIGINT
      - name: productTopGroupName
        type: VARCHAR
      - name: productGroupId
        type: BIGINT
      - name: productGroupName
        type: VARCHAR
      - name: productCategoryId
        type: BIGINT
      - name: productCategoryName
        type: VARCHAR
      - name: productPriorityId
        type: BIGINT
      - name: productPriorityName
        type: VARCHAR
      - name: productBrandId
        type: BIGINT
      - name: productBrandName
        type: VARCHAR
      - name: productSupplierId
        type: BIGINT
      - name: productSupplierName
        type: VARCHAR
      - name: productExtraField1ID
        type: BIGINT
      - name: productExtraField1Code
        type: VARCHAR
      - name: productExtraField2ID
        type: BIGINT
      - name: productExtraField2Code
        type: VARCHAR
      - name: productExtraField3ID
        type: BIGINT
      - name: productExtraField3Code
        type: VARCHAR
      - name: productExtraField4ID
        type: BIGINT
      - name: productExtraField4Code
        type: VARCHAR
      - name: shipToId
        type: BIGINT
      - name: shipToName
        type: VARCHAR
      - name: attendantId
        type: BIGINT
      - name: attendantName
        type: VARCHAR
      - name: revenueCategory
        type: VARCHAR
      - name: storeRegionId
        type: BIGINT
      - name: storeRegionName
        type: VARCHAR
      - name: projectId
        type: BIGINT
      - name: projectName
        type: VARCHAR
      - name: customerId
        type: BIGINT
      - name: customerName
        type: VARCHAR
      - name: customerEmail
        type: VARCHAR
      - name: customerGroupId
        type: BIGINT
      - name: locationId
        type: BIGINT
      - name: locationName
        type: VARCHAR
      - name: locationCode
        type: VARCHAR
      - name: registerId
        type: BIGINT
      - name: registerName
        type: VARCHAR
      - name: authorId
        type: BIGINT
      - name: authorName
        type: VARCHAR
      - name: infoUsedAlgorithm
        type: BIGINT
      - name: infoUsedAlgorithmMethod
        type: VARCHAR
      - name: promotions
        type: JSON
      - name: taxRateId
        type: BIGINT
      - name: taxRate
        type: DOUBLE
      - name: taxRateName
        type: VARCHAR
      - name: priceBasedTaxRate
        type: JSON
      - name: priceBasedTaxTreshold
        type: JSON
      - name: bundleQuantity
        type: BIGINT
      - name: soldQuantity
        type: BIGINT
      - name: netSalesTotal
        type: DOUBLE
      - name: taxTotal
        type: DOUBLE
      - name: salesWithTaxTotal
        type: DOUBLE
      - name: netDiscountTotal
        type: DOUBLE
      - name: discountPercent
        type: BIGINT

Write duckdb query answering the following question:

millised tooted müüsid kõige paremini eelmise 12 kuu jooksul kaupluste lõikes?

Additional requirements:
- Make sure to use only known DuckDB SQL syntax and functions.
- Do not use inline (--) comments
. Thoroughly review duckdb function library and avoid using any functions not in this reference list:
current_date
Description	Current date (at start of current transaction) in the local time zone. Note that parentheses should be omitted from the function call.
Example	current_date
Result	2022-10-08
date_add(date, interval)
Description	Add the interval to the date.
Example	date_add(DATE '1992-09-15', INTERVAL 2 MONTH)
Result	1992-11-15
date_diff(part, startdate, enddate)
Description	The number of partition boundaries between the dates.
Example	date_diff('month', DATE '1992-09-15', DATE '1992-11-14')
Result	2
date_part(part, date)
Description	Get the subfield (equivalent to extract).
Example	date_part('year', DATE '1992-09-20')
Result	1992
date_sub(part, startdate, enddate)
Description	The number of complete partitions between the dates.
Example	date_sub('month', DATE '1992-09-15', DATE '1992-11-14')
Result	1
date_trunc(part, date)
Description	Truncate to specified precision.
Example	date_trunc('month', DATE '1992-03-07')
Result	1992-03-01
datediff(part, startdate, enddate)
Description	The number of partition boundaries between the dates.
Example	datediff('month', DATE '1992-09-15', DATE '1992-11-14')
Result	2
Alias	date_diff.
datepart(part, date)
Description	Get the subfield (equivalent to extract).
Example	datepart('year', DATE '1992-09-20')
Result	1992
Alias	date_part.
datesub(part, startdate, enddate)
Description	The number of complete partitions between the dates.
Example	datesub('month', DATE '1992-09-15', DATE '1992-11-14')
Result	1
Alias	date_sub.
datetrunc(part, date)
Description	Truncate to specified precision.
Example	datetrunc('month', DATE '1992-03-07')
Result	1992-03-01
Alias	date_trunc.
dayname(date)
Description	The (English) name of the weekday.
Example	dayname(DATE '1992-09-20')
Result	Sunday
extract(part from date)
Description	Get subfield from a date.
Example	extract('year' FROM DATE '1992-09-20')
Result	1992
greatest(date, date)
Description	The later of two dates.
Example	greatest(DATE '1992-09-20', DATE '1992-03-07')
Result	1992-09-20
isfinite(date)
Description	Returns true if the date is finite, false otherwise.
Example	isfinite(DATE '1992-03-07')
Result	true
isinf(date)
Description	Returns true if the date is infinite, false otherwise.
Example	isinf(DATE '-infinity')
Result	true
last_day(date)
Description	The last day of the corresponding month in the date.
Example	last_day(DATE '1992-09-20')
Result	1992-09-30
least(date, date)
Description	The earlier of two dates.
Example	least(DATE '1992-09-20', DATE '1992-03-07')
Result	1992-03-07
make_date(year, month, day)
Description	The date for the given parts.
Example	make_date(1992, 9, 20)
Result	1992-09-20
monthname(date)
Description	The (English) name of the month.
Example	monthname(DATE '1992-09-20')
Result	September
strftime(date, format)
Description	Converts a date to a string according to the format string.
Example	strftime(DATE '1992-01-01', '%a, %-d %B %Y')
Result	Wed, 1 January 1992
time_bucket(bucket_width, date[, offset])
Description	Truncate date to a grid of width bucket_width. The grid is anchored at 2000-01-01[ + offset] when bucket_width is a number of months or coarser units, else 2000-01-03[ + offset]. Note that 2000-01-03 is a Monday.
Example	time_bucket(INTERVAL '2 months', DATE '1992-04-20', INTERVAL '1 month')
Result	1992-04-01
time_bucket(bucket_width, date[, origin])
Description	Truncate timestamptz to a grid of width bucket_width. The grid is anchored at the origin timestamp, which defaults to 2000-01-01 when bucket_width is a number of months or coarser units, else 2000-01-03. Note that 2000-01-03 is a Monday.
Example	time_bucket(INTERVAL '2 weeks', DATE '1992-04-20', DATE '1992-04-01')
Result	1992-04-15
today()
Description	Current date (start of current transaction) in UTC.
Example	today()
Result	2022-10-08