-C Avoid\sunnecessary\ssort\soperations\swhen\srunning\sone\sof\sthe\spercentile\naggregates\sas\sa\swindow\sfunction.
-D 2024-08-31T16:55:14.747
+C Add\smore\stest\scases.
+D 2024-08-31T17:27:55.143
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
F test/pcache.test c8acbedd3b6fd0f9a7ca887a83b11d24a007972b
F test/pcache2.test af7f3deb1a819f77a6d0d81534e97d1cf62cd442
F test/pendingrace.test e99efc5ab3584da3dfc8cd6a0ec4e5a42214820574f5ea24ee93f1d84655f463
-F test/percentile.test b30d92480943de8236c1522cace227ad354512ade699789636a4f50ba8a790a1
+F test/percentile.test 4c84880c6d5ca216206a92b6cb33c2fb27c972bec6afc6f5a2e53fb895020647
F test/permutations.test 405542f1d659942994a6b38a9e024cf5cfd23eaa68c806aeb24a72d7c9186e80
F test/pg_common.tcl 3b27542224db1e713ae387459b5d117c836a5f6e328846922993b6d2b7640d9f
F test/pragma.test 11cb9310c42f921918f7f563e3c0b6e70f9f9c3a6a1cf12af8fccb6c574f3882
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 25e68229843cc84978955817285550085d1306ba4ce3b0517dd00e5d05b9ae0a
-R 1b58d4d1990506055e066a3b56b6ff9a
+P 5d311536211eb1e3c887ceb7e6516d3900e6eebbccc8c445dd43cdd556182728
+R 8645e4703962687ea28510b503521695
U drh
-Z 10ad6a710202821993e7562cc60a54b3
+Z c1cee7eb4fe675aa957233112b675c53
# Remove this line to create a well-formed Fossil manifest.
2 B two 7.1 F.B.E 7.1
5 E two 12.5 B.E 9.8
}
+
+# Test case adapted from examples shown at
+# https://database.guide/3-functions-to-calculate-the-median-in-sql/
+#
+do_execsql_test percential-4.0 {
+ CREATE TABLE products(
+ vendorId INT,
+ productId INTEGER PRIMARY KEY,
+ productName REAL,
+ price REAL
+ );
+ INSERT INTO products VALUES
+ (1001, 17, 'Left-handed screwdriver', 25.99),
+ (1001, 49, 'Right-handed screwdriver', 25.99),
+ (1001, 216, 'Long weight (blue)', 14.75),
+ (1001, 31, 'Long weight (green)', 11.99),
+ (1002, 37, 'Sledge hammer', 33.49),
+ (1003, 7, 'Chainsaw', 245.00),
+ (1003, 8, 'Straw dog box', 55.99),
+ (1003, 12, 'Hammock', 11.01),
+ (1004, 113, 'Teapot', 12.45),
+ (1004, 117, 'Bottomless coffee mug', 9.99);
+}
+do_execsql_test percentile-4.1 {
+ SELECT VendorId, ProductId, /* ProductName,*/ Price,
+ avg(price) OVER (PARTITION BY vendorId) AS "Average",
+ median(price) OVER (PARTITION BY vendorId) AS "Median"
+ FROM products
+ ORDER BY vendorId, productId;
+} {
+ 1001 17 25.99 19.68 20.37
+ 1001 31 11.99 19.68 20.37
+ 1001 49 25.99 19.68 20.37
+ 1001 216 14.75 19.68 20.37
+ 1002 37 33.49 33.49 33.49
+ 1003 7 245.0 104.0 55.99
+ 1003 8 55.99 104.0 55.99
+ 1003 12 11.01 104.0 55.99
+ 1004 113 12.45 11.22 11.22
+ 1004 117 9.99 11.22 11.22
+}
+do_execsql_test percentile-4.2 {
+ SELECT vendorId, median(price) FROM products
+ GROUP BY 1 ORDER BY 1;
+} {1001 20.37 1002 33.49 1003 55.99 1004 11.22}
+
+
finish_test