Zeilen mit Bit-ODER zusammenfassen und in eine View bringen?

Zeilen mit Bit-ODER zusammenfassen und in eine View bringen?

am 09.10.2007 17:16:01 von Roland Aleksa

Hei Leute,

ich versuche hier das Ergebnis einer Abfrage zusamenzufassen.
Es sollen alle Werte (unsigned bigint) einer Spalte bitweise geodert werden
(Beispiel: 6|12=14)
Es soll nachher nur _eine_ Zeile übrigbleiben.

Mein Ansatz sieht so aus:

set @wert1=0;
set @wert2=0;
....
select (@wert1=@wert1|tab1.spalte1) as spalte1,(@wert2=@wert2|tab1.spalte2)
as spalte2,..... from (...) as tab1;

Im Prinzip klappt das, aber -> Leider bekomme ich das nicht in eine View...
wie stelle ich das an?

Ciao,
Roland

Re: Zeilen mit Bit-ODER zusammenfassen und in eine View bringen?

am 09.10.2007 17:33:22 von Harald Stowasser

Roland Aleksa schrieb:
> Hei Leute,
>
> ich versuche hier das Ergebnis einer Abfrage zusamenzufassen.
> Es sollen alle Werte (unsigned bigint) einer Spalte bitweise geodert
> werden (Beispiel: 6|12=14)
> Es soll nachher nur _eine_ Zeile übrigbleiben.
>
> Mein Ansatz sieht so aus:
>
> set @wert1=0;
> set @wert2=0;
> ...
> select (@wert1=@wert1|tab1.spalte1) as
> spalte1,(@wert2=@wert2|tab1.spalte2) as spalte2,..... from (...) as tab1;
>
> Im Prinzip klappt das, aber -> Leider bekomme ich das nicht in eine
> View... wie stelle ich das an?

Funktioniert
http://dev.mysql.com/doc/refman/5.1/en/group-by-functions.ht ml#function_bit-or
nicht mit views?

Re: Zeilen mit Bit-ODER zusammenfassen und in eine View bringen?

am 09.10.2007 17:42:09 von B.Steinbrink

On Tue, 09 Oct 2007 17:16:01 +0200, Roland Aleksa wrote:

> Hei Leute,
>
> ich versuche hier das Ergebnis einer Abfrage zusamenzufassen. Es sollen
> alle Werte (unsigned bigint) einer Spalte bitweise geodert werden
> (Beispiel: 6|12=14)
> Es soll nachher nur _eine_ Zeile übrigbleiben.
>
> Mein Ansatz sieht so aus:
>
> set @wert1=0;
> set @wert2=0;
> ...
> select (@wert1=@wert1|tab1.spalte1) as
> spalte1,(@wert2=@wert2|tab1.spalte2) as spalte2,..... from (...) as
> tab1;
>
> Im Prinzip klappt das, aber -> Leider bekomme ich das nicht in eine
> View... wie stelle ich das an?

http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.ht ml

Das GROUP BY einfach weglassen, ist halt nen Aggregatswert für die
gesamte Tabelle.

Björn

Re: Zeilen mit Bit-ODER zusammenfassen und in eine View bringen?

am 09.10.2007 17:55:46 von Roland Aleksa

Hi Harald und Björn,

> Funktioniert
> http://dev.mysql.com/doc/refman/5.1/en/group-by-functions.ht ml#function_bit-or
> nicht mit views?

patch - na klar, jetzt gehts. Ich muss mal Pause machen ;-)

Danke,
Roland

Re: Zeilen mit Bit-ODER zusammenfassen und in eine View bringen?

am 09.10.2007 18:19:21 von Claus Reibenstein

Roland Aleksa schrieb:

> Mein Ansatz sieht so aus:
>
> set @wert1=0;
> set @wert2=0;
> ....
> select (@wert1=@wert1|tab1.spalte1) as spalte1,(@wert2=@wert2|tab1.spalte2)
> as spalte2,..... from (...) as tab1;

Meiner so:

SELECT BIT_OR(spalte1) spalte1, BIT_OR(spalte2) spalte2, ...
FROM (...);

BIT_OR sorgt automatisch für eine Gruppierung über alle Zeilen, und tab1
ist überflüssig, da Du eh nur eine Tabelle hast.

Gruß. Claus