datagrid icon indicating copy to clipboard operation
datagrid copied to clipboard

Incorrect rows count when using GROUP BY with multiple columns - Nette\Database\Table

Open matoni555 opened this issue 2 years ago • 1 comments

Hi, I found the bug in Nette\Database\Table data source when using GROUP BY with multiple columns.

Here is example of SQL queries. Query for the datagrid with 703 total rows.

SELECT `id`, `title`, `variant`, CONCAT_WS(" - ", `title`, `variant`, `course_city`, `course_date`) AS `full_name` 
FROM `orders_products` 
GROUP BY `title`, `variant`, `course_city`, `course_date`;

Datagrid generated this SQL query from the getCount() function which gets 0 rows.

SELECT COUNT(DISTINCT `title`, `variant`, `course_city`, `course_date`) 
FROM `orders_products`;

I think right SQL query with multiple GROUP BY columns should be:

SELECT COUNT(*) 
FROM (
SELECT COUNT(id) 
FROM `orders_products`
GROUP BY `title`, `variant`, `course_city`, `course_date`
) AS x;

Best regards

matoni555 avatar Oct 05 '21 08:10 matoni555

Maybe related with https://github.com/contributte/datagrid-nette-database-data-source/pull/12.

radekdostal avatar Oct 19 '21 10:10 radekdostal