Группировка интервалами

Ваша грамматика описывает одну команду:

say : SAY OPEN_PAREN expression CLOSE_PAREN SEMI_COLON

Так что это то, что принимает синтаксический анализатор.

Если вы хотите, чтобы ввод состоял из нескольких команд, вам нужно написать грамматику, описывающую этот ввод:

program : 
program : program say
10
задан Dave Sherohman 13 October 2008 в 11:28
поделиться

2 ответа

Идея состоит в том, чтобы вычислить некоторую функцию поля, которое имеет постоянную величину в каждой группе, которую Вы хотите:

select count(*), round(mynum/3.0) foo from mytable group by foo;
15
ответ дан 3 December 2019 в 20:45
поделиться

Я не знаю, применимо ли это к mySql, так или иначе в SQL Server я думаю, что можно "просто" использовать группу и в списке выборки И В группе списком.

Что-то как:

select 
    CASE 
        WHEN id <= 20 THEN 'lessthan20' 
        WHEN id >  20 and id <= 30 THEN '20and30' ELSE 'morethan30' END,
    count(*) 
from Profiles 
where 1=1 
group by 
    CASE 
        WHEN id <= 20 THEN 'lessthan20' 
        WHEN id >  20 and id <= 30 THEN '20and30' ELSE 'morethan30' END

возвраты что-то как

 column1     column2    
 ----------  ---------- 
 20and30     3          
 lessthan20  3          
 morethan30  13         
3
ответ дан 3 December 2019 в 20:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: