Thread: why there are two TargetEntrys in Query when i use "select count(catcode) from pois group by catcode"?
why there are two TargetEntrys in Query when i use "select count(catcode) from pois group by catcode"?
From
sunpeng
Date:
I've the table
CREATE TABLE pois
(
uid integer not null,
name VARCHAR(128),
catcode VARCHAR(32) not null,
catname VARCHAR(32),
others VARCHAR(32)
);
after i execute "select count(*) from pois group by catcode";
the log of query.targetList is :
:targetList (
{TARGETENTRY
:expr
{AGGREF
:aggfnoid 2803
:aggtype 20
:args <>
:agglevelsup 0
:aggstar true
:aggdistinct false
:location 7
}
:resno 1
:resname count
:ressortgroupref 0
:resorigtbl 0
:resorigcol 0
:resjunk false
}
{TARGETENTRY
:expr
{VAR
:varno 1
:varattno 3
:vartype 1043
:vartypmod 36
:varlevelsup 0
:varnoold 1
:varoattno 3
:location 35
}
:resno 2
:resname <>
:ressortgroupref 1
:resorigtbl 0
:resorigcol 0
:resjunk true
}
)
why there is the second TARGETENTRY? what's the purpose of the second TARGETENTRY?
CREATE TABLE pois
(
uid integer not null,
name VARCHAR(128),
catcode VARCHAR(32) not null,
catname VARCHAR(32),
others VARCHAR(32)
);
after i execute "select count(*) from pois group by catcode";
the log of query.targetList is :
:targetList (
{TARGETENTRY
:expr
{AGGREF
:aggfnoid 2803
:aggtype 20
:args <>
:agglevelsup 0
:aggstar true
:aggdistinct false
:location 7
}
:resno 1
:resname count
:ressortgroupref 0
:resorigtbl 0
:resorigcol 0
:resjunk false
}
{TARGETENTRY
:expr
{VAR
:varno 1
:varattno 3
:vartype 1043
:vartypmod 36
:varlevelsup 0
:varnoold 1
:varoattno 3
:location 35
}
:resno 2
:resname <>
:ressortgroupref 1
:resorigtbl 0
:resorigcol 0
:resjunk true
}
)
why there is the second TARGETENTRY? what's the purpose of the second TARGETENTRY?
Re: why there are two TargetEntrys in Query when i use "select count(catcode) from pois group by catcode"?
From
Tom Lane
Date:
sunpeng <bluevaley@gmail.com> writes: > after i execute "select count(*) from pois group by catcode"; > the log of query.targetList is : > why there is the second TARGETENTRY? what's the purpose of the second > TARGETENTRY? It's the GROUP BY expression. Note the ressortgroupref and resjunk settings. regards, tom lane