2017-03-01 1 views
-1

Ich habe eine Abfrage, um Liste der Links (1 Col) und ihre Anzahl (2.) auszudrucken. Ich möchte die Ergebnisse nach ihrem Status aufteilen.Mysql Abfrage, um die Anzahl der Links zu zählen und geteilte Ergebnisse nach Status

Beispiel

Sampel Table

Mein Code: (Mysql, PHP, HTML)

$sql="SELECT `bookinglink`, count(`bookinglink`) AS 'count' 
FROM `quotedb` 
WHERE `bookinglink` != '' AND (status = 'quote' or status = 'booking') 
GROUP BY `bookinglink` ORDER BY count DESC"; 

$result=$mysqli->query($sql); 
    while($rs=$result->fetch_object()) { 
    echo "<tr><td>" . $rs->bookinglink . "</td><td>" . $rs->count . "</td></tr>"; 
} 

So müssen i sicher Abfrage machen zählt alle Links und zählt dann Links mit Status-Zitat“ "und" Buchung ". Ist es möglich, es in einer Abfrage arbeiten zu lassen?

Könntest du mir helfen, es auszuarbeiten, da ich nicht so sicher bin, wie ich damit umgehen soll.

+0

Sum (Fall, wenn ... dann ... end) x – Strawberry

Antwort

1

Die Abfrage geschrieben werden könnte wie folgt:

SELECT bookinglink, COUNT(bookinglink) AS bookinglinkcount, 
    SUM(status = 'quote') AS quotes, 
    CAST(100 * SUM(status = 'quote')/COUNT(bookinglink) AS DECIMAL(5, 2)) 
          AS quotes_percentage, 
    SUM(status = 'booking') AS bookings, 
    CAST(100 * SUM(status = 'booking')/COUNT(bookinglink) AS DECIMAL(5, 2)) 
          AS bookings_percentage 
FROM quotedb 
    WHERE bookinglink != '' 
GROUP BY bookinglink; 

Demo

+0

perfekt, vielen Dank – Nita

Verwandte Themen