にグループ化された結果を得るためにケースやグループ化を使用して、私は過去に同様の質問をしてきたが、非常に私は必要なものを取得していない、ここに古い質問は、特定の順序
How do I get the ID of a rows which have MAX and MIN values in SQL
何です私は、データベースの同じitem
フィールドを持つすべてのアイテムをグループ化したデータセットを取得しますが、データセットが特定のアイテムIDに関する詳細を出力するようにして、グループ化を特定の方法で順序付けするようにします。 (totalStock
が、その後desc
price
場合、オーダーasc
を注文した場合、私の場合、私は、どちらかtotalStock
フィールド、またはprice
で注文する必要があります。
私はこのSO質問が良く、私の質問に答えるが、私は理解していないと思い
"SELECT * FROM (select *, count(id) as Variants, sum(totalStock) as sumTotalStock
FROM `products` WHERE id > 0 AND `display`='1'
GROUP BY item ORDER BY CASE WHEN totalStock > 0 THEN totalStock ELSE price END DESC)
AS unknownVar
ORDER BY sumTotalStock"
012:Joins
は、私はここで私がでてるところの例です MySQL query order the results in GROUP BY
怖いですSQLの
私を失うの理解はtotalStock > 0
場合、あるいはprice
でtotalStock
順グループ分けしてitem
によってグループ化された私のデータベースから結果の内側のセットを取得することを目指しています。この内部結果セットは、次にsumTotalStock
によって注文されます。これは私に二つの問題を与えている
ORDER BY CASE WHEN totalStock > 0 THEN totalStock ELSE price END
重要なビットです。
1)いくつかの奇妙な出力、表示する必要があるコンテンツが欠落しています。
2)また、私は動作しませんastrix'd DESC
とASC
でソート順
ORDER BY CASE WHEN totalStock > 0 *DESC* THEN totalStock ELSE price *ASC* END
を変更することができるようにする必要があり、私はの終わりにDESC
を入れて持っているように見えますORDER BY
というステートメントがありますが、どちらの場合もDESC
の順番ですが、間違っています。
上記の2つの問題を考えると、これは実際には全く機能していないと私は確信しています!
私は午後と夕方のほとんどをGoogleとさまざまなSOの質問に費やしましたが、私はあきらめて別のものを投稿しなければなりませんでした。
誰かが私にこれを並べ替えるコードを投稿できたら、私は永遠に感謝しています!
私は、totalStock
とprice
列を気にMySQLデータベースを使用していますが、すべての場合の数値であり、item
はvarChar
フィールドです。私はこれらのフィールドでこれを行うことができたら、私は必要なものをすべて抽出することができますので、うまくいけば、それ以上のもので正しい方向に向ける必要はありません。
私は、価格を反転しています...賢い!しかし、それが働いているように見える間に私が得ている結果は間違っています。私の開発サイトは次のとおりです:http://dev.hartnollguitars.co.uk/Search.aspx?subcategory=Gibson-Les-Pauls&sort=price%20descこのリンクはcaseステートメントを使用しませんが、http:// dev。検索どちらのリンクでもWHERE句は同じですが、結果は異なります。ストックがないもの、または「グループ」内のアイテムが1つしか表示されていないと思っていましたが、そうではありません。 –
'totalStock'はStock Levelから返されたページにも表示されます。また、実際にはいくつのグループ化された項目があるかを示す' X Options'という出力があります。グループ化された項目はオプションです(利用可能です)いくつかの製品にはオプションが1つしかないので、グループ化されたデータには1つのアイテムしか返されません。これらの場合の並べ替えは無関係ですが、結果セットの一部の項目はランダムに見えます。 –
もう一度見て、読んでいない、私はこれがそれを行う方法だとは思わない。その内側のクエリはグループ化した後にソートされていると思うので、それは良いことではありません。私はグループを並べ替える必要があり、それを行う方法がわかっている唯一の方法は 'GROUP_CONCAT'ですが、複数のカラムデータを取得することで本当にうまくいきます。私は 'join 'の仕組みを工夫しなければならないと思う。 –