Ich habe eine benutzerdefinierte Funktion udf
, die einen Boolean, in MariaDB 5.5 zurückgibt.NICHT IN keine Zeilen zu liefern, unerwartet
Im Folgenden gibt mir, was ich erwarte:
select c, count(*)
from (
select fld, count(*)c
from tbl
where udf(fld)
group by fld
) t
group by c;
+---+----------+
| c | count(*) |
+---+----------+
| 1 | 12345 |
| 2 | 1234 |
| 3 | 123 |
| 4 | 12 |
| 5 | 1 |
+---+----------+
5 rows in set (26.75 sec)
Ebenso folgende gibt mir die Nummer 12345
(aus der obigen Tabelle nur), so wie ich erwarte:
select anotherfield, count(*)
from tbl
where udf(fld)
and fld in (
select fld from (
select fld,count(*)c
from tbl
group by fld
having c=1
)t
)
group by anotherfield with rollup;
würde ich erwarten, dass die folgenden würde ich auch 12345
:
select anotherfield, count(*)
from tbl
where udf(fld)
and fld not in (
select fld from (
select fld,count(*)c
from tbl
group by fld
having c>1
)t
)
group by anotherfield with rollup;
H aber es gibt mir keine Zeilen. Warum?
Dank. Und ich wusste das sogar ... nur irgendwie in diesem Fall. +1. – msh210