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